OOP的四大特征


抽象 abstract

最近對抽象有些不熟悉,那么先談談抽象。 抽象在java中常常表現為抽象類和抽象方法,即被abstract關鍵字修飾的類和方法。

抽象類:被abstract修飾的類

1 和接口不同,抽象類中可以有非抽象的方法,也可以有抽象的方法,而接口中只允許有抽象方法

2 如果一個抽象類被一個非抽象的子類繼承,那么父類的抽象方法就必須被子類重寫(附:重寫發生在父類與子類,形參列表相同。重載發生在同一個類里面,形參列表不同)。

3 抽象類不能創建本身的實例,但是可以利用多態,使父類(抽象類)的引用指向子類的對象,創建子類的實例。

4 基於上一條件可以得知,抽象類不能用final修飾,抽象方法也是。

抽象方法:沒什么好說的,沒有方法體的方法,可以被非抽象子類重寫。

 

封裝:

一般用private修飾符修飾,將類的成員屬性私有化,隱藏內部實現細節,僅對外提供公共的getset方法。封裝的優點在於隱藏了代碼實現細節,提高了安全性。

 

繼承:

一般用extends修飾符表示類與類之間的繼承關系。

java只支持單繼承,即一個子類只能擁有一個父類。但是可以多實現。

子類可以繼承父類的屬性和方法,但是不能繼承父類的私有化的屬性以及構造方法。子類在實例化的時候會先調用父類的構造。

如果一個類沒有父類,那么默認繼承基類Object。

繼承的優點和缺點:

提高了代碼的復用性和重用性,是多態產生的前提。但是也增加了類與類之間的耦合性,違背軟件開發高內聚、低耦合的原則。

 

 

多態:

多態的實現有三個條件:

有繼承關系

有方法重寫

有父類引用指向子類對象

多態的優點:

提高了程序的擴展性(基於此,多使用面向抽象編程)

降低了代碼之間的耦合

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM