子類不能直接訪問父類的私有成員;
但是子類可以調用父類中的非私有方法來間接訪問父類的私有成員。
Person類中有私有字段name,Student繼承Person
new Sudent().name;?????? ?????? ×
new Student().getName();???? √
?
子類拓展父類(子類是父類的一種特殊情況)
?????? 主要是以父類為基礎,然后添加屬于自己的字段和方法。
?
方法覆寫產生原因:
當父類中某個方法不適合于子類時,子類出現父類一模一樣的方法.
判斷必殺技:子類方法前加上@Override能編譯通過,表明是方法的覆寫。
調用被覆蓋的父類方法:使用super.方法名(實參);
方法覆寫時應遵循的原則(一同兩小一大):
(一同):方法簽名必須相同;
(兩小):
子類方法的返回值類型比父類方法的返回值類型更小或相等??????
子類方法聲明拋出的異常應比父類方法申明拋出的異常更小或相等;
(一大):子類方法的訪問權限應比父類方法更大或相等;
?
子類需要覆寫父類方法。
當父類的某個方法不適合于子類本身的特征行為時就當覆寫父類中應當改變的方法。