1. 程式人生 > >Java的封裝性、繼承性和多態性

Java的封裝性、繼承性和多態性

運算 靈活性 提高 重載 條件 extend 父類繼承 具體類 系統


封裝

封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了數據。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。

封裝的優點:

  • 便於使用者正確、方便的使用系統,防止使用者錯誤修改系統屬性;
  • 有助於建立各個系統之間的松耦合關系;提高軟件的可重用性;
  • 降低了大型系統的風險,即便整個系統不成功,個別獨立的子系統有可能還有價值。

封裝的原則又是什麽呢,現在我們在這說下封裝的兩大原則:

  • 把盡可能多的東西藏起來,對外提供簡潔的接口;
  • 把所有的屬性封裝起來。

繼承

子類繼承父類的屬性和行為,並能根據自己的需求擴展出新的屬性和行為,提高了代碼的可復用性。

Java中使用extends關鍵字實現,實現繼承的類我們叫子類,被繼承的叫父類(有的也稱其為基類、超類)。子類可以拓展父類的屬性,子類也可以獲取父類中所有的屬性和方法。

多態

多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。

多態有哪些具體實現方式呢,具體實現就是,接口的實現接口實現,繼承父類進行方法重寫,同一個類中進行方法重載。

多態存在的的三個必要條件:

  • 要有繼承(兩個類之間存在繼承關系,子類繼承父類);
  • 要有重寫(在子類裏面重寫從父類繼承下來的方法);
  • 父類引用指向子類對象;

這三個條件一旦滿足,當你調用父類裏面被重寫的方法的時候,實際當中new的是哪個子類對象,就調用子類對象的方法(這個方法是從父類繼承下來後重寫後的方法)。

多態的優勢:

  • 有助於解耦:提高了代碼的可擴展性,大大提高了代碼的靈活性,簡化了一些不必要的邏輯處理,從而提高代碼的維護率,提高代碼的實用性。
  • 可替換性:多態對已存在代碼具有可替換性。
  • 可擴充性:多態對代碼具有可擴充性。增加新的子類不影響已存在類的多態性、繼承性,以及其他特性的運行和操作。實際上新加子類更容易獲得多態功能。
  • 接口性:多態是超類通過方法簽名,向子類提供了一個共同接口,由子類來完善或者覆蓋它而實現的。
  • 靈活性:它在應用中體現了靈活多樣的操作,提高了使用效率。
  • 簡化性:多態簡化對應用軟件的代碼編寫和修改過程,尤其在處理大量對象的運算和操作時,這個特點尤為突出和重要。

Java的封裝性、繼承性和多態性