在看集合原始碼的時候,因為對一些知識點有些混淆,導致看原始碼比較吃力,所以重新回顧一下面向物件的繼承和多型,順便記錄一下重點,
繼承
-
子類會繼承父類的所有屬性和方法,但私有屬性和方法在子類不能直接訪問,需要通過父類提供的公共方法訪問;
-
子類必須呼叫父類的構造器,完成父類的初始化(創建子類物件時會呼叫父類的無參構造器,其實在子類的無參構造方法的第一行默認有
super()); -
創建子類物件時,不管子類使用有參構造還是無參構造,默認情況下總會去呼叫父類的無參構造,如果父類沒有寫無參構造器(當父類寫了有參構造器而沒寫無參構造器,那么無參構造器就沒有了),那么子類的構造器要用
super()指定使用父類的什么構造器,否則編譯不通過; -
如果想要指定呼叫父類的某個構造器,則需要用
super()顯式呼叫,呼叫super()時必須要放在第一行,而this()也是必須放在第一行,所以這兩個方法只能用一個,不能共存; -
Object類是所有類的父類,因此創建子類物件呼叫父類構造器時,會一直向上追溯到Object類;
-
當子類物件訪問某個屬性/方法時:
(1) 首先看子類物件本身有沒有該屬性/方法,如果有并且是可以訪問的,那么直接訪問
(2) 如果子類沒有該屬性/方法,看父類有沒有該屬性/方法,如果父類有并且是可以訪問的,那么就訪問
(3) 同理,如果父類也沒有,則一直向上找,直到Object類
后續還會繼續更新總結多型的知識重點
有不懂的地方可以在下面評論,隨時交流~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/533489.html
標籤:Java
上一篇:Java:String、StringBuilder、StringJoiner學習筆記
下一篇:Tomcat 執行緒池學習總結
