日期:2014-05-20  浏览次数:20710 次

如何调用父类的父类的方法
A,B,C三个类,C继承B,B继承A,并且都有方法test(),请问可以在C中直接调用A的test方法吗?

------解决方案--------------------
去C语言区去问阿!
------解决方案--------------------
哈哈,楼上的没仔细看楼主的问题啊.
------解决方案--------------------
显然不可以直接调用!c调用b的都得通过b来操作
------解决方案--------------------
在B里写个方法比如method调用A里的test() 方法
然后在C里写个方法
调用B里的method方法
------解决方案--------------------
class A{
public void test(){
System.out.println( "A.test() ");
}
}

class B extends A{
public void test(){
System.out.print( "B.test() ");
}
}

public class C extends B{

public static void main(String[] args) {
C x = new C();
x.test();
}

}
结果为:B.test()
------解决方案--------------------
没办法,A的test()信息丢失了
------解决方案--------------------
不行的A信息丢失了,必须在Bzhong 实现一个方法
------解决方案--------------------
可以直接调用的
nanjixiong043() ( ) 信誉:100 2007-08-08 12:54:13 得分: 0


class A{
public void test(){
System.out.println( "A.test() ");
}
}

class B extends A{
public void test(){
System.out.print( "B.test() ");
}
}

public class C extends B{

public static void main(String[] args) {
C x = new C();
x.test();
}

}
结果为:B.test()
原因是在B继承A的时候把A的test()方法给重写了,所以C继承不了A,如果想C继承A ,就不要在B中重写A的方法,改为如下所示就可以了
nanjixiong043() ( ) 信誉:100 2007-08-08 12:54:13 得分: 0


class A{
public void test(){
System.out.println( "A.test() ");
}
}

class B extends A{
public void test1(){
System.out.print( "B.test() ");
}
}

public class C extends B{

public static void main(String[] args) {
C x = new C();
x.test();
}

}
结果为:A.test()





------解决方案--------------------
感觉这个问题讨论的必须有前提:
1.无权修改类A和类B.
2.有权修改.
对于前者,无奈
对于后者前面说得方法都可以