我有A类,其方法sum()
。调用超类方法
现在类B
延伸A
类和覆盖sum()
方法,和
类C
延伸B
类和也覆盖sum()
方法。
现在我创建一个类C
的实例。
我的问题是:如何在类C
到C
实例中如何调用类A
的sum()
方法?其中一种方式是在B
和C
中拨打super.sum()
。有没有其他方法?
我有A类,其方法sum()
。调用超类方法
现在类B
延伸A
类和覆盖sum()
方法,和
类C
延伸B
类和也覆盖sum()
方法。
现在我创建一个类C
的实例。
我的问题是:如何在类C
到C
实例中如何调用类A
的sum()
方法?其中一种方式是在B
和C
中拨打super.sum()
。有没有其他方法?
有CAL的没有语法方式林志玲方法A.sum()C的任何方法内您需要将一个桥接 B法里面做这件事:
public class A {
public void sum() { System.out.println("A.sum()"); }
}
public class B extends A {
@Override
public void sum() { System.out.println("B.sum()"); }
protected final void superSum() { super.sum(); }
}
public class C extends B {
@Override
public void sum() { System.out.println("C.sum()"); }
public void someMethod() {
sum();
super.sum();
superSum();
}
}
调用C.someMethd()打印出
C.sum()
B.sum()
A.sum()
B里面的& C的sum方法放置super(),这样它会调用A的sum方法。
B extends A{
sum(){
super();
//dosomething..
}
}
看到我编辑的问题... – RuntimeException
您可以使用super.sum()调用的总和B中,但我不觉得你能做到这一点从C.
最好的办法是打电话super.sum()在两个B的ANC C'S总和
看到我编辑的问题... – RuntimeException
你可以尝试这样的:
class A{
public void method() {
System.out.println("a");
}
}
class B extends A {
public void method() {
System.out.println("b");
}
public void callmethod(){
super.method();
}
}
class C extends B {
public void method() {
System.out.println("c");
}
public void callmethod(){
super.callmethod();
}
}
public class Test {
public static void main(String[] args) {
C c = new C();
c.callmethod();
}
}
一个obj = new C();然后调用方法obj.sum();或者使用super来调用该方法 – Kick
不,根据http://stackoverflow.com/questions/3456177/calling-super-super-class-method –
的接受答案您创建了C类实例的位置? – Sudz