我能夠運行下面的代碼:爲什麼說靜態方法不能被繼承?
class A
{
public static void display()
{
System.out.println("Inside static method of superclass");
}
}
class B extends A
{
public void show()
{
display();
}
}
public class staticMethodInheritance {
public static void main(String[] args) {
B b = new B();
b.display();
}
}
現在,我能夠從B類的實例訪問該方法顯示(),那麼爲什麼它說,靜態方法不能被繼承。如果我在類B中聲明一個方法顯示,那麼據說超類中的方法是隱藏的,並且子類中的方法再次被調用,這不是我們重寫方法時所需的行爲。
恩,事實並非如此。但是這些方法不能被覆蓋(然後繼承),只能隱藏。 – 2014-11-21 05:41:11