学习一下使用接口变量

时间:2015-09-09 04:34:49

标签: java interface

我最近看到实现在一个类中实现接口的地方,而在另一个类中我们有一个接口类型的静态最终变量,它以某种方式能够从已实现接口的类完成计算。

我的问题是,如果多个类具有接口的实现,接口变量将如何处理此问题。我错过了什么,或者只是猜测接口的实现在哪里。

这是针对java语言的

KXmlSerializer

这里的AnotherClass不知何故知道如何寻找doSomething的实现。有人能指出我这是如何运作的。

1 个答案:

答案 0 :(得分:0)

java interface中的变量是public staticfinal类型。每当类实现interface时。 interface variable成为班级的一部分。现在可以使用class referenceobject reference访问这些变量。这些变量为final,因此无法更新static因此始终属于该类。 interface本身不需要管理任何事情。实施班将负责处理。

这里我们用一个方法和一个变量定义了一个接口DemoMe。现在DemoMeOne类实现了接口。需要为来自接口的方法提供定义。 doSomething()方法只是打印一个语句,从接口访问变量。现在我们定义另一个实例化DemoMeOne类并访问接口方法和变量的类。

interface DemoMe{
  public void doSomething();
  public int variable = 100;
}

class DemoMeOne implements DemoMe {
  public void doSomething(){
    System.out.println("Something was done.");
    System.out.println("Access interface variable: " + variable);
  }
}

class MainClass {
  public static void main(String[] args) {
    DemoMeOne demoMeOne = new DemoMeOne();
    System.out.println("Variable from interface using DemoMeOnce class: " + DemoMeOne.variable);
    System.out.println("Variable from interface using DemoMeOnce object reference: " + demoMeOne.variable);
    System.out.println("Variable from interface using interface itself: " + DemoMe.variable);
    demoMeOne.doSomething();
  }
}

<强>输出:
使用DemoMeOnce类的接口变量:100
使用DemoMeOnce对象参考的接口变量:100
使用界面本身的界面变量:100
做了一些事。
访问接口变量:100