java中子类调用祖父类(父类的父类)的方法

publicclassA{publicbooleanmethodTest(){System.out.println("A=========================... public class A {
public boolean methodTest(){
System.out.println("A==================================");
return true;
}
}

public class B extends A{
public boolean methodTest(){
System.out.println("B==================================");
return false;
}
}

public class C extends B{
public boolean methodTest(){
return super.methodTest();
}
}

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

注意:前提是不改变A,B的代码。
现在输出的是“B==================================”
如何能*只*输出A==================================
那个.........好吧!是我没说明白。不要试图改变A,B的结构解决问题,也不要改变集成关系解决问题。
展开
 我来答
woshidaniel
推荐于2017-09-22 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:953万
展开全部

1、如果是多态,只能通过super的方式调用基类方法,具体决定于父类是否覆盖了父类的父类方法,如果父类的方法覆盖了父类的父类,则super无法调用到父类的父类方法。如果父类的方法没有覆盖父类的父类,则super可以调用到父类的父类方法。

public class A{//定义类A
    public void show(){
    }
}
public class B extends A{//定义子类B,继承类A
    public void show(){
      super.show();//调用父类A的方法show
    }
}

2、如果不是多态,则可以直接访问方法名就能够访问到父类的父类方法

public class A{//定义类A
    public void show(){
    }
}
public class B extends A{//定义子类B,继承类A
    public void me(){
      show();//调用的是父类A中定义的show方法
    }
}
百度网友8882490
2011-07-08 · TA获得超过1747个赞
知道小有建树答主
回答量:1190
采纳率:0%
帮助的人:998万
展开全部
new A(); 就好了
没有直接的办法。可以重载B中的方法
想实现类似的功能到也是可以的。但是,如果在实际的应用中如果发现你的代码需要这样,那基本上说明你的设计很有问题!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胜叔叔1
2019-11-12
知道答主
回答量:1
采纳率:0%
帮助的人:680
展开全部
《深入理解java虚拟机里面有写》
如果Son继承了Father,Father继承了GrandFather,
且Son重写了Father里面的该方法,Father重写了GrandFather里面的该方法。
可以通过MethodHandle 的invoke方法调用到祖父类GrandFather中的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牧镶露9L
2011-07-08 · TA获得超过172个赞
知道答主
回答量:133
采纳率:0%
帮助的人:0
展开全部
B继承A并且重写了A的methodTest方法
并且C继承了B
这时你new了一个C,这样B的methodTest方法就重写了A的methodTest方法
所以在C中你是无法取得A的methodTest方法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dup08
2011-07-08
知道答主
回答量:20
采纳率:0%
帮助的人:16.8万
展开全部
输出不了, 因为C继承B, B继承A
C里面的方法public boolean methodTest() 和B, A里的方法完全相同(类型boolean, 名字methodTest(), 无参数)
JAVA只能调用子类的方法
你要么把方法换了, 要么别继承B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式