我的A类有一个方法sum()
。
现在,类B
扩展了类A
并覆盖了sum()
方法,
类C
扩展了类B
,并且还覆盖了sum()
方法。
现在我创建了一个类C
的实例。
我的问题是:如何通过A
实例调用课程sum()
中的课程C
C
方法?其中一种方法是在super.sum()
和B
中致电C
。还有其他办法吗?
答案 0 :(得分:1)
内部B& amp; C&和方法放置super(),以便它调用A的sum方法。
B extends A{
sum(){
super();
//dosomething..
}
}
答案 1 :(得分:1)
你可以使用super.sum()在B中调用A的总和,但我不认为你可以用C来做。
最好的方法是在B&C和C&C的总和中调用super.sum()
答案 2 :(得分:1)
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();
}
}
答案 3 :(得分:1)
在C的任何方法中都没有调用方法A.sum()的语法方法。你需要在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()