关于java类继承的问题

john0611 2008-11-01 06:59:42
如果A extends B, B extends C,A想调用C中的方法的话通过super.*还是super.super.*? 谢谢!
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SylvanLiu 2008-11-01
  • 打赏
  • 举报
回复

class C{

public void methodC(){

System.out.println("I'm the method from C");
}
}

class B extends C{

public void methodB(){

System.out.println("I'm the method from B");

}
}

class A extends B{

public void methodA(){
System.out.println("I'm the method from A");

super.methodB();
super.methodC();
}

public static void main(String args[]) {

A a=new A();

a.methodA();
}
}


因为B继承了C,所以C中的方法已经是B中的成员,因此直接用super.*就可以了
cydp007 2008-11-01
  • 打赏
  • 举报
回复
class Accid {
public void ok() {
System.out.println("ok");
}
}

class Beep extends Accid {

public void notOk() {
System.out.println("notok");
}
}

public class Com extends Beep {
public Com() {
super.ok();
}

public static void main(String[] args) {
new Com();
}
}


ok
qusic 2008-11-01
  • 打赏
  • 举报
回复
用super.*,但是如果B类覆盖了C类的某个方法,那么在A类中讲无法访问C类中的这个方法
破Feel 2008-11-01
  • 打赏
  • 举报
回复
应该是super.*

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧