面向對象有四大特征:分別是
繼承 : 子類繼承父類的特征和行為。子類可以有父類的方法,屬性(非private)。子類也可以對父類進行擴展,也可以重寫父類的方法。缺點就是提高代碼之間的耦合 性。。
super關鍵字:通過super實現對父類成員的訪問。用來引用當前對象的父類。通過super顯示的調用父類的有參構造,無參構造可以隱式調用
this:用來引用當前對象,指向自己
final可以修飾類,方法,屬性
修飾的類不能繼承,修飾的方法不能重寫,修飾的屬性不能修改。
多態 : 多態就是不同類的對象,對同一消息作出不同響應就叫多態。就像你對所有人說你結婚了,每個人的反應都是不一樣的。
多態存在的3個條件:
1、繼承關系
2、重寫父類的方法
3、父類引用指向子類對象
以下三種方法不能實現多態:(方法不能被重寫)
1、static方法,被static修飾的方法是屬於類的,而不是實例的。
2、final,被final修飾的方法不能被重寫
3、private和protected方法。private修飾的方法對子類不可見。而protected修飾的方法可以被子類見到,也可以重寫,但是不能被外部引用。
理解多態(假如有一個父類Father和子類Children)
1、向上轉型是自動的 Father f = new Children();不需要強轉
2、向下轉型需要強轉 Children c = (Children)new Father()需要強轉。讓父類知道具體轉成哪個子類
3、父類引用指向子類對象,子類重寫了父類的方法,調用父類的方法,實際是調用子類重寫父類的方法后的方法。Father f = new Children();f.toString()實際是調用子類重寫后的方法。
多態的分類:
方法重載實現的是編譯時的多態性,而方法重寫實現的是運行時的多態性。
方法重載:當多個同名方法存在時,方法名不變,但參數類型和個數不同稱為方法的重載,不以返回值來區分重載
方法重寫:父類與子類之間的多態性,對父類的方法重寫,若子類中的方法與父類中的方法具有相同的返回值,方法名和參數列表,則新方法會覆蓋 舊方法。
參數列表相同,返回值相同,方法名相同,不能拋出新的檢查異常則就是重寫
參數列表的類型,個數不同,方法名相同,返回值可以相同也可以不同稱為重載。可以拋出新的異常,可以有不同的訪問修飾符
封裝 : 封裝就是把過程和數據包圍起來,對數據的訪問只能通過特定的界面.如私有變量,用set,get方法獲取。能降低耦合性,
抽象 : 分為過程抽象和數據抽象,
- 數據抽象 -->表示世界中一類事物的特征,就是對象的屬性.比如鳥有翅膀,羽毛等(類的屬性)
- 過程抽象 -->表示世界中一類事物的行為,就是對象的行為.比如鳥會飛,會叫(類的方法)