黑马程序员技术交流社区

标题: 如果类a继承类b,实现接口c,而类b和接口c中定义了同名变... [打印本页]

作者: .Mч┞尛__洋    时间: 2014-7-14 08:02
标题: 如果类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();
       }
}
请写出你的想法,如果你认为对或者错,那么请看下面的代码是对错呢?

interface Playable
{
        void play();
}
interface Bounceable
{
        void play();
}
interface Rollable extends Playable, Bounceable
{
        Ball ball = new Ball("PingPang");
}
class Ball implements Rollable
{
        private String name;
        public String getName()
{
            return name;
        }
        public Ball(String name)
{
            this.name = name;        
        }
       public void play()
{
            ball = new Ball("Football");
            System.out.println(ball.getName());
        }
}


作者: fantacyleo    时间: 2014-7-14 10:37
两个都编译报错。第一个,x有冲突,编译器不知道x到底指接口A的x还是类B的x。第二个,Ball没有定义ball变量,所以只能是从接口继承而来的,而接口中的变量是final的,只能赋值一次
作者: 为爱编程    时间: 2014-7-14 11:00
你这问题问的有科学依据吗?或者说你知道答案不
作者: .Mч┞尛__洋    时间: 2014-7-14 19:41
为爱编程 发表于 2014-7-14 11:00
你这问题问的有科学依据吗?或者说你知道答案不

这是昨天面试我的题目  ...
作者: 为爱编程    时间: 2014-7-14 21:22
.Mч┞尛__洋 发表于 2014-7-14 19:41
这是昨天面试我的题目  ...

知道答案不
作者: idency    时间: 2014-7-15 11:00
为爱编程 发表于 2014-7-14 21:22
知道答案不

编译不通过,x指定不明确
作者: 双皮奶    时间: 2014-7-15 11:10
路过留名




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