Java初學(xué)之繼承與多態(tài)
首先我們?nèi)绻褂肑ava中存在的包,可以程序中使用import語(yǔ)句導(dǎo)入包。包說(shuō)通俗點(diǎn)就是一個(gè)
文件夾,為了方便管理。
在程序中聲明包的語(yǔ)法:
package <包名>
注意:聲明一個(gè)包的語(yǔ)句必須寫(xiě)在類(lèi)中的第一行。
在程序中導(dǎo)入包的格式:
import <包名>.<類(lèi)名>
重點(diǎn)來(lái)了,繼承!
繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要特征,它是通過(guò)繼承原有類(lèi)派生出的子類(lèi)進(jìn)而構(gòu)造出更為復(fù)雜的子類(lèi)。子類(lèi)既有新定義的行為特征,又繼承了原有類(lèi)的行為特征。我們可以這樣進(jìn)一步認(rèn)為:父類(lèi)更為通用,子類(lèi)更為具體。通過(guò)繼承可以大幅度提高代碼復(fù)用性,減少代碼量,便于程序的后期維護(hù)。Java的繼承使用extends關(guān)鍵字實(shí)現(xiàn)。
Java繼承語(yǔ)法格式:
【修飾符】class 子類(lèi)名 【extends 父類(lèi)名】{
//類(lèi)定義部分
}
!注意:Java中的繼承為單繼承,即一個(gè)子類(lèi)只能有一個(gè)直接的父類(lèi)。
子類(lèi)會(huì)自動(dòng)繼承父類(lèi)的屬性,子類(lèi)中也可以定義特定的屬性和方法。
下面是重載:
方法的重載,是指在同一個(gè)類(lèi)中的多個(gè)方法可以具有相同的方法名,但是這些的方法參數(shù)必須不同。
當(dāng)方法功能相同時(shí),只是接受參數(shù)不同的時(shí)候,就要用到重載。
使用方法重載需要注意以下幾點(diǎn):
- 1.同一個(gè)類(lèi)中方法名相同,參數(shù)列表不同。
- 2.返回值類(lèi)型不能用于區(qū)分方法的重載。
提醒:構(gòu)造方法也可以實(shí)現(xiàn)方法的重載。
什么是重寫(xiě)呢?:
子類(lèi)擴(kuò)展了父類(lèi),子類(lèi)是一個(gè)特殊的父類(lèi)。子類(lèi)以父類(lèi)為基礎(chǔ),額外增加新的屬性和方法。
方法的重寫(xiě)要遵循方法名和參數(shù)列表都必須相同。子類(lèi)方法的訪問(wèn)權(quán)限應(yīng)該要比父類(lèi)方法的訪問(wèn)權(quán)限更大或者相等。
多態(tài)應(yīng)用:
多態(tài)是指同一操作作用于不同對(duì)象,可以有不同的解釋?zhuān)灾庐a(chǎn)生不同的執(zhí)行結(jié)果。在編譯時(shí),可以通過(guò)父類(lèi)的引用指向子類(lèi)對(duì)象,而在運(yùn)行時(shí),則通過(guò)父類(lèi)指向子類(lèi)對(duì)象,調(diào)用子類(lèi)中重寫(xiě)父類(lèi)的方法。
多態(tài)的具體操作見(jiàn)示例:

程序運(yùn)行結(jié)果如圖:

引用變量的強(qiáng)制類(lèi)型轉(zhuǎn)換
這里的強(qiáng)制轉(zhuǎn)換轉(zhuǎn)換的是對(duì)象,要有關(guān)系才能轉(zhuǎn),兩個(gè)平行的類(lèi)不能轉(zhuǎn),如:子類(lèi)和父類(lèi),兩個(gè)類(lèi)
都有繼承關(guān)系,但是可以和父類(lèi)的父類(lèi)轉(zhuǎn)。
instanceof 運(yùn)算符
instanceof運(yùn)算符的前一個(gè)操作數(shù)通常是一個(gè)引用類(lèi)型變量。后一個(gè)操作數(shù)通常是一個(gè)類(lèi)。他它用于判斷運(yùn)算符前面的引用變量是否是運(yùn)算符后面的類(lèi)型或其子類(lèi)型的實(shí)例。
總結(jié)
本篇文章就到這里了,希望可以對(duì)你有所幫助,也希望您可以多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
java數(shù)據(jù)庫(kù)開(kāi)發(fā)之JDBC基礎(chǔ)使用方法及實(shí)例詳解
這篇文章主要介紹了java數(shù)據(jù)庫(kù)開(kāi)發(fā)之JDBC基礎(chǔ)知識(shí)詳解,需要的朋友可以參考下2020-02-02
MyBatis中執(zhí)行相關(guān)SQL語(yǔ)句的方法
本文主要介紹了MyBatis中執(zhí)行相關(guān)SQL語(yǔ)句的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
springboot之security?FilterSecurityInterceptor的使用要點(diǎn)記錄
這篇文章主要介紹了springboot之security?FilterSecurityInterceptor的使用要點(diǎn)記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java中漢字轉(zhuǎn)拼音pinyin4j用法實(shí)例分析
這篇文章主要介紹了Java中漢字轉(zhuǎn)拼音pinyin4j用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了pinyin4j庫(kù)的具體使用技巧,需要的朋友可以參考下2015-12-12
Java設(shè)計(jì)模式之構(gòu)建者模式知識(shí)總結(jié)
這幾天剛好在復(fù)習(xí)Java的設(shè)計(jì)模式,今天就給小伙伴們?nèi)婵偨Y(jié)一下開(kāi)發(fā)中最常用的設(shè)計(jì)模式-建造者模式的相關(guān)知識(shí),里面有很詳細(xì)的代碼示例及注釋哦,需要的朋友可以參考下2021-05-05
解決Lombok使用@Builder無(wú)法build父類(lèi)屬性的問(wèn)題
這篇文章主要介紹了解決Lombok使用@Builder無(wú)法build父類(lèi)屬性的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
springboot加載一個(gè)properties文件轉(zhuǎn)換為map方式
這篇文章主要介紹了springboot加載一個(gè)properties文件轉(zhuǎn)換為map方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

