第一個問題是在代碼裏面。第二個問題是爲什麼靜態方法不能被重寫爲非靜態方法?第三是爲什麼不能靜態和抽象一起?java繼承誤解
class A {
public void display() {
System.out.println("Display of Class A called");
}
}
class B extends A {
public void display() {
System.out.println("Display of Class B called");
}
}
class C extends B {
public void display() {
System.out.println("Display of Class C called");
super.display(); // calls B's Display
// Is there a way to call A's display() from here?
}
}
想想「靜態」是什麼意思 - 它不是特定於任何特定的實例。現在考慮多態是如何工作的:使用的實現取決於調用方法的* instance *。看看他們怎麼不一起工作?至於另一個問題,不,你不能。請參閱http://stackoverflow.com/questions/586363/。 –
另外,請一次只問*一個問題*。 –