1、父類中private的方法,可以被重寫,但是不能被繼承。如果被重寫了,那麼:父類 a=new 子類(),執行的時候,呼叫的是子類的private方法。測試**如下:
package static_;
public class m
private void testprivate()
}class t extends m
//// private void testprivate()
public void testp()
}下面是main函式所在:
package static_;
public class snippet
}上面**輸出是:private in t,說明呼叫了子類的private方法【**中的private方法被注釋掉了,請取消注釋】。
2、static方法可以被繼承,但是不能被覆蓋。覆蓋的含義是:父類 a= new 子類(),在a呼叫方法的時候,如果呼叫的是子類的方法,那麼說明父類的方法被覆蓋了。但是,看下面的**。
測試**如下:
package static_;
public class m
public void testpublic()
}class t extends m
public void testpublic()
}package static_;
public class snippet
}**輸出是:
public in t1
in m
說明,父類的public方法被覆蓋了。但是static方法呼叫的還是父類的。說明父類的方法不能被覆蓋。即使被重寫了,呼叫的時候還是會去呼叫父類的方法。除非直接t.test()指明呼叫子類的方法。
【這裡其實很明確會呼叫父類的static方法。因為m m=new t();,是以父類的形式呼叫的,而靜態方法是屬於類的,所以是呼叫的父類的static方法。如果t m=new t();,那麼呼叫的就必然是子類的static方法了。】
3、final方法不能被繼承,不能被覆蓋
package static_;
public class m
private void testprivate()
public final void testfinal()
}class t extends m
private void testprivate()
public final void testfinal()
public void testp()
}上面紅色字型標註了會報出來的錯誤。
java 子類與父類
1.父類 注 f m1 是父類不被繼承的方法 f m2 父類被子類重寫的方法 public class father public void f m1 public void f m2 2.子類 注 f m3是子類的私有方法 f m2 子類重寫父類方法 public class sunextends...
關於Java中子類呼叫父類方法
當乙個類繼承於另乙個類,子類中沒有父類的方法時。用子類的物件呼叫方法時,會首先在子類中查詢,如果子類中沒有改方法,再到父類中查詢。當乙個方法只在父類中定義時,呼叫該方法時會使用父類中的屬性。如果該方法中又呼叫了其他方法,那麼還是按照之前的順序,先在子類中查詢,再在父類中查詢。package temp...
關於父類子類繼承關係
一.繼承 子類可以直接復用父類中的成員.子類繼承父類所有方法的宣告和實現 非私有的例項變數以及協議 繼承時要在.h中宣告一下 繼承具有單根性和傳遞性 繼承的根類 大多都繼承自 nsobject 類,所以在定義乙個類時,要繼承nsobject 類。繼承就是 優化公共部分交給父類 例如 person是父...