黑马程序员技术交流社区

标题: 子类实现的接口怎么调用自己属性的?源于什么? [打印本页]

作者: 胡建彪    时间: 2012-10-16 10:48
标题: 子类实现的接口怎么调用自己属性的?源于什么?
interface  Intf
{
    int x=5;
}
public class InterfaceTest implements Intf{

   
    public static void main(String[] args) {
        new InterfaceTest().printX();
        System.out.println(Intf.x);//接口直接调用属性在子类中使用???

    }
    public void printX(){
        System.out.println(x);
    }
}
此处接口怎么可以直接使用它的属性啊? 大神们来解释解释。。。


作者: 梁世喜    时间: 2012-10-16 10:59
接口中定义的变量都隐含修饰符 public static final

所以这里的 int  x=5 ;  可以理解为  public static final int x=5;

所以可以使用  Intf.x

子类实现接口的同时具有接口中的(都是 public )变量  ,所以可以直接使用  x
作者: 毕影彬    时间: 2012-10-16 11:58
因为x在接口中为静态常量,静态常量是存放在内存的数据区,且不能被改变和赋值,只有一份。而且,不需要New出对象,就可以直接由 类名.静态常量(Intf.x),这样直接使用。 因为他"只此一家,别无分号",呵呵。
作者: 胡建彪    时间: 2012-10-16 18:41
梁世喜 发表于 2012-10-16 10:59
接口中定义的变量都隐含修饰符 public static final

所以这里的 int  x=5 ;  可以理解为  public static  ...

Thanks for replying. Correct Explaination.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2