MyException - 我的异常网
当前位置:我的异常网» Java面试 » 面试题:为何java不允许 super.super.xxx

面试题:为何java不允许 super.super.xxx(3)

www.MyException.Cn  网友分享于:2013-12-03  浏览:1239次

}
}

public class SuperTest
{
public static void main(String args[])
{
C c= new C();
c.f();
}
}

运行结果:
B.f()
C.f()
对C类建立的对象怎么能运行出A.f()呢?
------解决方案--------------------
向各位学习了
------解决方案--------------------
学习受益中…

------解决方案--------------------
public class Exmple4 {
public static void main(String[] args){
C a=new C();
a.f();
}

}

class AA{
public void f(){
System.out.println("AA.f()");
}
}
class B extends AA{
public void f(){
super.f();
System.out.println("B.f()");
}
}
class C extends B{
public void f(){
super.f();
System.out.println("C.f()");
}
}
------解决方案--------------------
继续关注.....
------解决方案--------------------
很独特的问题,值得关注。
------解决方案--------------------
请各位看清楚LZ问的是“为什么java不允许 super.super.xxx 这样的语句?”请不要无根据的猜测,没意思。从问题的反面来想想看,如果可以会发生什么问题。
------解决方案--------------------
如果父类已经调用了super,你再调用super.super不就脱裤子放屁了?
如果父类没有调用super,你调用super.super,那就说明继承错了。本来是父亲辈分的,但 你偏要弄成孙子辈分还要直接继承爷爷的特征。
------解决方案--------------------
真是众说纷纭,我这菜鸟是越看越糊涂.

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有