教你如何正確了解java三大特性!!!!
本章講解面向?qū)ο蟮娜筇匦裕?b>封裝,繼承,多態(tài)。
一.包Java定義了一種名字空間,稱之為包:package。一個類總是屬于某個包,類名(比如Person)只是一個簡寫,真正的完整類名是 包名.類名。例如:apple 類放在包 banana 里面 完整類名是:banana.apple。
自定義包的語法:
package< 包名 >
注意:聲明一個包必須寫在類的第一行。
1.2 包的導(dǎo)入
如果要使用java中存在的包,可以在程序中使用import語句導(dǎo)入包。
格式如下:(注意中間有一個小點)
import< 包名 >.< 類名 >
如果要導(dǎo)入一個包中的多個類,可以使用'*'表示包中所有的類。如上個例子完整代碼為:import banana.*。
二.繼承繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
繼承的作用:通過繼承可以快速創(chuàng)建新的類,實現(xiàn)代碼的重用,提高程序的可維護性,節(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不支持多重繼承,但一個類可以實現(xiàn)多個接口,從而克服單繼承的缺點;
4.構(gòu)造方法不會被子類繼承,但可以從子類中調(diào)用父類的構(gòu)造方法。
三:重載和重寫3.1重載(Overload)在同一個類中,同名的方法有不同的參數(shù)列表(參數(shù)類型不同,參數(shù)個數(shù)不同,甚至是參數(shù)順序不同)即為重載,重載對返回類型無要求,可以相同,也可以不同,但不能通過返回類型是否相同來判斷重載.
注意以下幾點:
(1)同一類中方法名相同,參數(shù)列表不同。
(2)返回值類型不能用于區(qū)分方法的重載。
提醒:構(gòu)造方法也可以實現(xiàn)方法的重載
3.2 重寫重寫,即重新寫一遍。即在子類中把父類本身具有的方法重新寫一次。子類擴展了父類,子類是一個特殊的父類。子類以父類為基礎(chǔ),額外增加新的屬性和方法。
重寫的規(guī)則:
1.發(fā)生在之類與父類之間
2.父類中的私有方法不能被重寫
3.重寫父類方法時,訪問權(quán)限不能比父類低,拋出異常不能比父類的異常范圍廣或拋出新的異常
4.父類有靜態(tài)方法時,子類必須通過靜態(tài)方法進行重寫
重載與重寫的區(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 子類類型();
適用場景:當不需要面對子類類型時,通過提高擴展性,或者使用父類的功能就能完成相應(yīng)的操作。
向下轉(zhuǎn)型:一個已經(jīng)向上轉(zhuǎn)型的子類對象可以使用強制類型轉(zhuǎn)換的格式,將父類引用類型轉(zhuǎn)為子類引用各類型
4.2 instanceofinstanceof運算符的前一個操作數(shù)通常是一個引用類型變量,后一個操作數(shù)通常是一個類,它用于判斷運算符前面的引用變量是否是運算符后面的類型或其子類型的實例。
注意!使用instanceof運算符時,需要注意instancecof運算符前面操作數(shù)的編譯時,類型要么與后面的類相同,要么與后面的類具有父子繼承關(guān)系,否則會引起編譯失誤。
總結(jié)本篇文章就到這里了,希望可以給你帶來一些幫助,也希望您能夠多多關(guān)注好吧啦網(wǎng)的更多內(nèi)容!
相關(guān)文章:
1. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作2. Python 忽略文件名編碼的方法3. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis4. 解決vue頁面刷新,數(shù)據(jù)丟失的問題5. android studio實現(xiàn)簡單的計算器(無bug)6. Java Media Framework 基礎(chǔ)教程7. 在Mac中配置Python虛擬環(huán)境過程解析8. python如何實現(xiàn)word批量轉(zhuǎn)HTML9. 利用單元測試對PHP代碼進行檢查10. python excel和yaml文件的讀取封裝
