2015-09-11 50 views
2

我以前的想法是,我必须编译接口以及实现类的实现类来理解属于接口的静态数据。在Java中,如果一个类实现了一个接口,是否需要编译该接口?

例如,如果接口有一个数据字段,public static final int six = 6,如果我想使用这个类在编译的类使用six并运行程序,并使用six,我必须包括编译接口类也。

这似乎并不是这样,实现类如何知道它没有编译接口的这个数据字段?

回答

0

如果我想使用这个类在编译的类使用six并运行程序,并使用six,我必须包括编译接口类也。

正确。

然而,一个static final值将可能由Java编译器将恒定值被内联(在编译时间)。你可以用类似的方式检查字节码

javap -v MyClass.class 
+0

我应该在字节码中寻找什么? – Ares

+0

还有什么内联? '最后','静态'?还是只有在将两者结合在一起的时候'static final'? – Ares

相关问题