您現在的位置是:首頁 > 網路遊戲首頁網路遊戲
瞭解java三大特性!你真的正確瞭解了嗎?
- 2021-10-05
子類可以丟擲父類未丟擲的異常嗎
繼承與多型
本章講解面向物件的三大特性:封裝,繼承,多型。
一。包
Java定義了一種名字空間,稱之為包:package。一個類總是屬於某個包,類名(比如Person)只是一個簡寫,真正的完整類名是 包名。類名。例如:apple 類放在包 banana 裡面 完整類名是:banana。apple。
自定義包的語法:
package< 包名 >
注意
:宣告一個包必須寫在類的第一行。
1。2 包的匯入
如果要使用java中存在的包,可以在程式中使用import語句匯入包。
格式如下:(注意中間有一個小點)
import< 包名 >。< 類名 >
如果要匯入一個包中的多個類,可以使用“*”表示包中所有的類。如上個例子完整程式碼為:import banana。*。
二。繼承
繼承就是子類繼承父類的特徵和行為,使得子類物件(例項)具有父類的例項域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
繼承的作用:
透過繼承可以快速建立新的類,實現程式碼的重用,提高程式的可維護性,節省大量建立新類的時間,提高開發效率和開發質量。
java的繼承語法格式如下:
[修飾符] class 子類名 [extends 父類名]{ //類定義部分}
例如:banana是一個類,apple是一個類,將banana設為apple的父類
public class apple extends banana{ //內容}
注意!1.java中的繼承為單繼承,即一個子類只能有一個直接的父類。
2.子類不能選擇性繼承父類;
3.Java不支援多重繼承,但一個類可以實現多個介面,從而克服單繼承的缺點;
4.構造方法不會被子類繼承,但可以從子類中呼叫父類的構造方法。
三:過載和重寫
1.過載(Overload)
在同一個類中,同名的方法有不同的引數列表(引數型別不同,引數個數不同,甚至是引數順序不同)即為過載,過載對返回型別無要求,可以相同,也可以不同,但不能透過返回型別是否相同來判斷過載。
注意以下幾點:
(1)同一類中方法名相同,引數列表不同。
(2)返回值型別不能用於區分方法的過載。
提醒:構造方法也可以實現方法的過載
3.2 重寫
重寫,即重新寫一遍。即在子類中把父類本身具有的方法重新寫一次。子類擴充套件了父類,子類是一個特殊的父類。子類以父類為基礎,額外增加新的屬性和方法。
重寫的規則:
1。發生在之類與父類之間
2。父類中的私有方法不能被重寫
3。重寫父類方法時,訪問許可權不能比父類低,丟擲異常不能比父類的異常範圍廣或丟擲新的異常
4。父類有靜態方法時,子類必須透過靜態方法進行重寫
過載與重寫的區別:
1。過載發生在一個類裡面
2。重寫發生在父類與子類之間。
四:多型
多型指同一操作作用於不同物件,可以有不同的解釋,以致產生不同的執行結果。
多型體現為父類引用變數可以指向子類物件
前提條件:必須要有子父類關係。
注意:在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫後的方法。
4。2 多型的轉型
多型的轉型分為向上轉型和向下轉型兩種:
向上轉型:多型本身就是向上轉型過的過程
使用格式:
父類型別 變數名=new 子類型別();
適用場景:當不需要面對子類型別時,透過提高擴充套件性,或者使用父類的功能就能完成相應的操作。
向下轉型:一個已經向上轉型的子類物件可以使用強制型別轉換的格式,將父類引用型別轉為子類引用各型別
4.3 instanceof
instanceof運算子的前一個運算元通常是一個引用型別變數,後一個運算元通常是一個類,它用於判斷運算子前面的引用變數是否是運算子後面的型別或其子型別的例項。
注意!使用instanceof運算子時,需要注意instancecof運算子前面運算元的編譯時,型別要麼與後面的類相同,要麼與後面的類具有父子繼承關係,否則會引起編譯失誤。
好啦 今天的java繼承與多型知識部分就到這裡啦!
謝謝觀看!!!!!有任何問題隨時私聊我,希望我的文章可以幫助到你
下一篇:授權委託書你寫對了嗎?