一篇文章帶你了解JAVA面對對象之繼承與修飾符
Java面向?qū)ο笾^承與修飾符
繼承
1.含義
繼承是面向?qū)ο笕筇卣髦?,能使子類具有父類的屬性和方法,還可以在子類中重新定義,和追加屬性和方法。
2.實現(xiàn)
繼承通過extends實現(xiàn)
class +子類 +extends+父類{ }
3.好處
繼承可以讓不同類之間產(chǎn)生關(guān)系,子類可以使用父類中的私有成員。
提高了代碼的復(fù)用性。(相同成員放在一個類)
提高了代碼的維護性。
4.短處
繼承讓類與類之間產(chǎn)生了關(guān)系,類的耦合性增強了,但降低了子類的獨立性?!?mark>耦合性耦合性:也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息?!?/p>
5.成員變量的訪問特點
采用就近原則(子類局部—>子類成員---->父類成員)
6.super () 方法
super 代表對父類對象的引用。
7.繼承中結(jié)構(gòu)方法的訪問特點
子類會繼承父類中的數(shù)據(jù),可能還會使用父類的數(shù)據(jù)。所以,子類初始化之前,一定要先完成父類數(shù)據(jù)的初始化,原因在于,每一個子類構(gòu)造方法的第一條語句默認(rèn)都是:super()。所以如果父類中沒有無參構(gòu)造方法,只有帶參構(gòu)造方法時,我們應(yīng)該在父類中自己提供一個無參構(gòu)造方法或者通過super去調(diào)用父類的帶參構(gòu)造方法。
8.方法重寫
當(dāng)子類需要父類的功能,而功能主體子類有自己特有內(nèi)容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內(nèi)容。
注意
1. 私有方法不能被重寫(父類私有成員子類是不能繼承的)
2. 子類方法訪問權(quán)限不能更低(public > 默認(rèn) > 私有)
9.java繼承的注意事項
java類中只支持單繼承,不支持多繼承class A extends B, C { } //錯誤示范 ;但是支持多層繼承,舉個例子:爸爸,爺爺和兒子;爸爸繼承爺爺,兒子繼承爸爸,兒子就間接繼承了爸爸和爺爺兩個人的屬性。
修飾符
1.package
2.import
3.權(quán)限修飾符
4.final
* fianl修飾類:該類不能被繼承(不能有子類,但是可以有父類) * final修飾方法:該方法不能被重寫 * final修飾變量:表明該變量是一個常量,不能再次賦值
5.ianl修飾基本數(shù)據(jù)類型變量
* final 修飾指的是基本類型的數(shù)據(jù)值不能發(fā)生改變
6.final修飾引用數(shù)據(jù)類型變量
* **final 修飾指的是引用類型的地址值不能發(fā)生改變,但是地址里面的內(nèi)容是可以發(fā)生改變的** * `public static void main(String[] args){ final Student s = new Student(23); s = new Student(24); // 錯誤 s.setAge(24); // 正確 }
7.static
*含義:static關(guān)鍵字是靜態(tài)的意思,可以修飾(成員方法),(成員變量)。
特點:被類的所有對象共享,這也是我們判斷是否使用靜態(tài)關(guān)鍵字的條件。
8.static訪問的特點
1. 非靜態(tài)的成員方法 * 能訪問靜態(tài)的成員變量 * 能訪問非靜態(tài)的成員變量 * 能訪問靜態(tài)的成員方法 * 能訪問非靜態(tài)的成員方法 2. 靜態(tài)的成員方法 能訪問靜態(tài)的成員變量 能訪問靜態(tài)的成員方法
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot框架實現(xiàn)切換啟動開發(fā)環(huán)境和測試環(huán)境
這篇文章主要介紹了SpringBoot框架實現(xiàn)切換啟動開發(fā)環(huán)境和測試環(huán)境,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Java中如何給List進行排序(這7種方法輕松實現(xiàn))
在Java項目中可能會遇到給出一些條件,將List元素按照給定條件進行排序的情況,這篇文章主要給大家介紹了關(guān)于Java中如何給List進行排序的相關(guān)資料,通過文中介紹的這7種方法可以輕松實現(xiàn),需要的朋友可以參考下2023-10-10spring aop底層源碼執(zhí)行邏輯剖析(源碼解析)
這篇文章主要介紹了spring aop底層源碼執(zhí)行邏輯剖析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08IntelliJ IDEA 2021 Tomcat 8啟動亂碼問題的解決步驟
很多朋友遇到過IntelliJ IDEA 2021 Tomcat 8啟動的時候出現(xiàn)各種奇葩問題,最近有童鞋反映IntelliJ IDEA 2021 Tomcat 8啟動亂碼,正好我也遇到這個問題,下面我把解決方法分享給大家需要的朋友參考下吧2021-06-06SpringBoot任意版本集成Swagger各種版本的操作指南
在學(xué)習(xí)Swagger生成API文檔的時候經(jīng)常會遇到問題,而目前市面上大部分技術(shù)分享者的SpringBoot版本并沒和我們的同步,導(dǎo)致一些一模一樣的代碼,在我們的項目上卻無法使用,這是一個經(jīng)常性的問題,本文章就旨在和大家搞定SpringBoot任意版本集成Swagger各種版本2024-07-07Spring Boot Actuator監(jiān)控端點小結(jié)
這篇文章主要介紹了Spring Boot Actuator監(jiān)控端點小結(jié),需要的朋友可以參考下2017-06-06