教你如何正確了解java三大特性!!!!
本章講解面向?qū)ο蟮娜筇匦裕?b>封裝,繼承,多態(tài)。
一.包Java定義了一種名字空間,稱之為包:package。一個類總是屬于某個包,類名(比如Person)只是一個簡寫,真正的完整類名是 包名.類名。例如:apple 類放在包 banana 里面 完整類名是:banana.apple。
自定義包的語法:
package< 包名 >
注意:聲明一個包必須寫在類的第一行。
1.2 包的導(dǎo)入
如果要使用java中存在的包,可以在程序中使用import語句導(dǎo)入包。
格式如下:(注意中間有一個小點(diǎn))
import< 包名 >.< 類名 >
如果要導(dǎo)入一個包中的多個類,可以使用'*'表示包中所有的類。如上個例子完整代碼為:import banana.*。
二.繼承繼承就是子類繼承父類的特征和行為,使得子類對象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
繼承的作用:通過繼承可以快速創(chuàng)建新的類,實(shí)現(xiàn)代碼的重用,提高程序的可維護(hù)性,節(jié)省大量創(chuàng)建新類的時間,提高開發(fā)效率和開發(fā)質(zhì)量。
java的繼承語法格式如下:
[修飾符] class 子類名 [extends 父類名]{//類定義部分}
例如:banana是一個類,apple是一個類,將banana設(shè)為apple的父類
public class apple extends banana{//內(nèi)容}
注意!1.java中的繼承為單繼承,即一個子類只能有一個直接的父類。
2.子類不能選擇性繼承父類;
3.Java不支持多重繼承,但一個類可以實(shí)現(xiàn)多個接口,從而克服單繼承的缺點(diǎn);
4.構(gòu)造方法不會被子類繼承,但可以從子類中調(diào)用父類的構(gòu)造方法。
三:重載和重寫3.1重載(Overload)在同一個類中,同名的方法有不同的參數(shù)列表(參數(shù)類型不同,參數(shù)個數(shù)不同,甚至是參數(shù)順序不同)即為重載,重載對返回類型無要求,可以相同,也可以不同,但不能通過返回類型是否相同來判斷重載.
注意以下幾點(diǎn):
(1)同一類中方法名相同,參數(shù)列表不同。
(2)返回值類型不能用于區(qū)分方法的重載。
提醒:構(gòu)造方法也可以實(shí)現(xiàn)方法的重載
3.2 重寫重寫,即重新寫一遍。即在子類中把父類本身具有的方法重新寫一次。子類擴(kuò)展了父類,子類是一個特殊的父類。子類以父類為基礎(chǔ),額外增加新的屬性和方法。
重寫的規(guī)則:
1.發(fā)生在之類與父類之間
2.父類中的私有方法不能被重寫
3.重寫父類方法時,訪問權(quán)限不能比父類低,拋出異常不能比父類的異常范圍廣或拋出新的異常
4.父類有靜態(tài)方法時,子類必須通過靜態(tài)方法進(jìn)行重寫
重載與重寫的區(qū)別:
1.重載發(fā)生在一個類里面
2.重寫發(fā)生在父類與子類之間。
四:多態(tài)多態(tài)指同一操作作用于不同對象,可以有不同的解釋,以致產(chǎn)生不同的執(zhí)行結(jié)果。
多態(tài)體現(xiàn)為父類引用變量可以指向子類對象
前提條件:必須要有子父類關(guān)系。
注意:在使用多態(tài)后的父類引用變量調(diào)用方法時,會調(diào)用子類重寫后的方法。
4.1 多態(tài)的轉(zhuǎn)型多態(tài)的轉(zhuǎn)型分為向上轉(zhuǎn)型和向下轉(zhuǎn)型兩種:
向上轉(zhuǎn)型:多態(tài)本身就是向上轉(zhuǎn)型過的過程
使用格式:
父類類型 變量名=new 子類類型();
適用場景:當(dāng)不需要面對子類類型時,通過提高擴(kuò)展性,或者使用父類的功能就能完成相應(yīng)的操作。
向下轉(zhuǎn)型:一個已經(jīng)向上轉(zhuǎn)型的子類對象可以使用強(qiáng)制類型轉(zhuǎn)換的格式,將父類引用類型轉(zhuǎn)為子類引用各類型
4.2 instanceofinstanceof運(yùn)算符的前一個操作數(shù)通常是一個引用類型變量,后一個操作數(shù)通常是一個類,它用于判斷運(yùn)算符前面的引用變量是否是運(yùn)算符后面的類型或其子類型的實(shí)例。
注意!使用instanceof運(yùn)算符時,需要注意instancecof運(yùn)算符前面操作數(shù)的編譯時,類型要么與后面的類相同,要么與后面的類具有父子繼承關(guān)系,否則會引起編譯失誤。
總結(jié)本篇文章就到這里了,希望可以給你帶來一些幫助,也希望您能夠多多關(guān)注好吧啦網(wǎng)的更多內(nèi)容!
相關(guān)文章:
1. HTTP協(xié)議常用的請求頭和響應(yīng)頭響應(yīng)詳解說明(學(xué)習(xí))2. HTML DOM setInterval和clearInterval方法案例詳解3. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)4. React優(yōu)雅的封裝SvgIcon組件示例5. HTML5 Canvas繪制圖形從入門到精通6. XML入門的常見問題(三)7. Vue如何使用ElementUI對表單元素進(jìn)行自定義校驗(yàn)及踩坑8. CSS清除浮動方法匯總9. XML在語音合成中的應(yīng)用10. 不要在HTML中濫用div
