黑马程序员技术交流社区

标题: Java 中的 继承和实现问题 [打印本页]

作者: 范贞亮    时间: 2012-10-25 15:10
标题: Java 中的 继承和实现问题

如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?

interface      A
{
       int x = 0;
}
class B
{
       int x =1;
}
class C extends B implements A
{
       public void pX()
{
        System.out.println(x);
     }
       public static void main(String[] args) {
          new C().pX();
       }
}
作者: 李润根    时间: 2012-10-25 15:29
就会出现类C方法中的X变量不明确,不知道要调用哪个X,所以就要明确一下

class Test
{
        public static void main(String[] args)
        {
                new C().sop();
        }
}

interface A
{
        int x=1;
}

class B
{
        int x=2;
}

class C extends B implements A
{
        int x=3;
        public void sop()
        {               
                System.out.println("A:"+A.x);
                System.out.println("B:"+super.x);
                System.out.println("C:"+this.x);
        }
}
作者: 给生活加点料    时间: 2012-10-25 15:29
如果在同一个包下,会报错。要想打印出x.
可以这么写
System.out.println(super.x);
System.out.println(A.x);
作者: 于连林    时间: 2012-10-25 15:56
接口中是不能定义变量的,只能定义常量啊,这样才能为实现接口的对象提供一个统一的属性,所以说你这个程序就要报错的




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