java中關於繼承、多型和封裝的個人理解
super:子類中呼叫父類的普通方法或成員變數
構造方法的第一句總是:super(...)來呼叫父類相應的構造方法。流程是:先向上追溯到Object,然後再依次向下執行類的初始化塊和構造方法,直到當前子類為止。(注:靜態初始化塊呼叫順序,與構造方法呼叫順序一樣)
java的三個特性:
1、繼承:從一個類(父類)中派生出的新類,稱之為子類,子類可以實現父類中所有的非私有化屬性和方法。並且根據自己的需要能擴展出新的屬性和方法。
繼承可以提高程式碼的可維護性,減少程式碼的冗餘度。繼承也是可以傳遞的,容易在基類物件上進行子類的擴充等。
2、封裝:封裝是指利用抽象資料型別和基於資料的操作結合在一起,資料被保護在抽象資料型別的內部,系統的其他部分只有通過包裹在資料之外被授權的操作,才能與這個抽象資料型別進行互動。
就是把物件的屬性和操作結合為一個獨立的整體,並儘可能隱藏物件的內部實現細節。舉個例子:比如我們用電視機,只要按電視機的按鈕就能用,而不用管電視機裡面的結構怎麼做、有多複雜,就是讓需要使用者知道使用的暴露出來,不需要使用者知道的隱藏起來。
程式設計追求“高內聚,低耦合”,高內聚就是類的內部資料操作細節自己完成,不允許外部干涉;低耦合是僅暴露少量的方法給外部使用,儘量方便外部呼叫。
封裝的優點:1.提高程式碼的安全性2.提高程式碼的複用性3.“高內聚”:封裝細節,便於修改內部程式碼,提高可維護性4.“低耦合”:簡化外部呼叫,便於呼叫者使用,便於擴充套件和協作。
java中對類和類中的成員都定義了修飾符:
對類:public、default
對類中成員:public、protect、default、private
若要呼叫一個類中的private屬性的值,需要通過set、get方法來進行呼叫
3、多型:
1.多型是方法的多型,而不是屬性的多型(多型與屬性無關)
2.多型的存在有3個必要條件:繼承,方法重寫,父類引用指向子類物件
3.父類引用指向子類物件後,用該父類引用呼叫子類重寫的方法,此時多型就出現了