我最近看到实现在一个类中实现接口的地方,而在另一个类中我们有一个接口类型的静态最终变量,它以某种方式能够从已实现接口的类完成计算。
我的问题是,如果多个类具有接口的实现,接口变量将如何处理此问题。我错过了什么,或者只是猜测接口的实现在哪里。
这是针对java语言的
KXmlSerializer
这里的AnotherClass不知何故知道如何寻找doSomething的实现。有人能指出我这是如何运作的。
答案 0 :(得分:0)
java interface
中的变量是public
static
和final
类型。每当类实现interface
时。 interface variable
成为班级的一部分。现在可以使用class reference
或object 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