一篇文章帶你了解JAVA面對對象之繼承與修飾符
Java面向?qū)ο笾^承與修飾符
繼承
1.含義
繼承是面向?qū)ο笕筇卣髦?,能使子類具有父類的屬性和方法,還可以在子類中重新定義,和追加屬性和方法。
2.實(shí)現(xiàn)
繼承通過extends實(shí)現(xiàn)
class +子類 +extends+父類{ }
3.好處
繼承可以讓不同類之間產(chǎn)生關(guān)系,子類可以使用父類中的私有成員。
提高了代碼的復(fù)用性。(相同成員放在一個(gè)類)
提高了代碼的維護(hù)性。
4.短處
繼承讓類與類之間產(chǎn)生了關(guān)系,類的耦合性增強(qiáng)了,但降低了子類的獨(dú)立性。【耦合性耦合性:也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息?!?/p>
5.成員變量的訪問特點(diǎn)
采用就近原則(子類局部—>子類成員---->父類成員)
6.super () 方法
super 代表對父類對象的引用。
7.繼承中結(jié)構(gòu)方法的訪問特點(diǎn)
子類會(huì)繼承父類中的數(shù)據(jù),可能還會(huì)使用父類的數(shù)據(jù)。所以,子類初始化之前,一定要先完成父類數(shù)據(jù)的初始化,原因在于,每一個(gè)子類構(gòu)造方法的第一條語句默認(rèn)都是:super()。所以如果父類中沒有無參構(gòu)造方法,只有帶參構(gòu)造方法時(shí),我們應(yīng)該在父類中自己提供一個(gè)無參構(gòu)造方法或者通過super去調(diào)用父類的帶參構(gòu)造方法。
8.方法重寫
當(dāng)子類需要父類的功能,而功能主體子類有自己特有內(nèi)容時(shí),可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內(nèi)容。
注意
1. 私有方法不能被重寫(父類私有成員子類是不能繼承的)
2. 子類方法訪問權(quán)限不能更低(public > 默認(rèn) > 私有)
9.java繼承的注意事項(xiàng)
java類中只支持單繼承,不支持多繼承class A extends B, C { } //錯(cuò)誤示范 ;但是支持多層繼承,舉個(gè)例子:爸爸,爺爺和兒子;爸爸繼承爺爺,兒子繼承爸爸,兒子就間接繼承了爸爸和爺爺兩個(gè)人的屬性。
修飾符
1.package
2.import
3.權(quán)限修飾符

4.final
* fianl修飾類:該類不能被繼承(不能有子類,但是可以有父類)
* final修飾方法:該方法不能被重寫
* final修飾變量:表明該變量是一個(gè)常量,不能再次賦值
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); // 錯(cuò)誤
s.setAge(24); // 正確
}
7.static
*含義:static關(guān)鍵字是靜態(tài)的意思,可以修飾(成員方法),(成員變量)。
特點(diǎn):被類的所有對象共享,這也是我們判斷是否使用靜態(tài)關(guān)鍵字的條件。
8.static訪問的特點(diǎn)
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使用SOFA-Lookout監(jiān)控的方法
本文介紹SpringBoot使用螞蟻金服SOFA-Lookout配合Prometheus進(jìn)行監(jiān)控,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
Spring Security跳轉(zhuǎn)頁面失敗問題解決
這篇文章主要介紹了Spring Security跳轉(zhuǎn)頁面失敗問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Spring Cache與Redis結(jié)合的使用方式
這篇文章主要介紹了Spring Cache與Redis結(jié)合的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
spring boot 2.x html中引用css和js失效問題及解決方法
這篇文章主要介紹了spring boot 2.x html中引用css和js失效,需要的朋友可以參考下2018-11-11
JAVA Comparator 和 Comparable接口使用方法
本文介紹了Java中Comparable和Comparator接口的使用,包括它們的定義、方法和應(yīng)用場景,Comparable用于定義類的自然排序規(guī)則,而Comparator提供了一種靈活的方式來定義對象之間的排序規(guī)則,無需修改類本身,感興趣的朋友一起看看吧2025-03-03
SpringBoot使用過濾器、攔截器和監(jiān)聽器的案例代碼(Springboot搭建java項(xiàng)目)
這篇文章主要介紹了SpringBoot使用過濾器、攔截器和監(jiān)聽器(Springboot搭建java項(xiàng)目),本文是基于Springboot搭建java項(xiàng)目,結(jié)合案例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
Java OpenCV圖像處理之仿射變換,透視變換,旋轉(zhuǎn)詳解
這篇文章主要為大家詳細(xì)介紹了Java OpenCV圖像處理中仿射變換,透視變換,旋轉(zhuǎn)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下2022-10-10
Spring?createBeanInstance實(shí)例化Bean
這篇文章主要為大家介紹了Spring?createBeanInstance實(shí)例化Bean源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
idea springboot遠(yuǎn)程debug的操作方法
這篇文章主要介紹了idea springboot遠(yuǎn)程debug的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

