public class BaseClass {
private String className;
public BaseClass() {
className = "[BaseClass]";
}
public void executeAB() {
System.out.println(className + " executingAB()");
executeA();
executeB();
}
public void executeA() {
System.out.println(this.className + " executingA()");
}
public void executeB() {
System.out.println(this.className + " executingB()");
}
}
public class SubClass extends BaseClass {
private String className;
public SubClass() {
this.className = "[SubClass]";
}
public void executeA() {
System.out.println(className + " executingA()");
}
public void executeC() {
System.out.println(className + " executingC()");
}
public static void main(String[] args) {
BaseClass t = new SubClass();
t.executeAB();
// t.executeC();
}
}
在上述情况下,调用 t.executeAB() 会导致输出:
[BaseClass] 执行 AB()
[子类] 执行A()
[BaseClass] 执行 B()
我的问题是:
BaseClass 如何知道 SubClass 的 excuteA() 方法,同时由于 BaseClass 不知道 executeC( ) 调用 t.executeC() 是不可能的。