Java學習第四課 類的繼承與多態特性

1、Java中實現繼承是通過extends關鍵字在聲明類時指定其父類,其聲明格式如下:

[權限修飾符]class 類名 extends 父類名


2、Java中super有兩個作用:
(1)super(參數):調用基類中的某一個構造函數(應該爲構造函數中的第一條語句)
(2)引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數據或函數,基類與派生類中有相同成員定義時)
如:super.變量名

super.成員函數據名(實參)


3、Java中定義了private、public、protected和默認的權限修飾符,這些修飾符控制着對類和類的成員變量以及成員方法的訪問規則。
(1)public是公有類型的權限修飾符,也就是說,使用public修飾的類、成員變量和成員方法,其他類都可以訪問,包括任意包中的任意類以及子類。
(2)private是私有權限修飾符,只有本類,也就是定義private私有成員的類能夠訪問,對於其他方式的訪問,它都會拒絕。
(3)protected是保護級別的權限修飾符,它保護成員不會被其他包或非子類訪問。也就是說protected修飾的成員,只能被子類(可以不是直接子類,間接繼承的子類也可以)和同一個包中定義的其他類訪問。

(4)當不添加任何權限修飾符時,編譯器會使用默認的修飾符,該修飾符的權限級別與protected類似,不同之處在於,在其他包定義的子類無法訪問父類默認權限修飾的成員。


4、在Java中,所有的類都直接或間接繼承了java.lang.Object類。Object類是比較特殊的類,它是所有類的父類,也就是說Java語言中任何一個類都是Object類的子類。當創建一個類時,如果沒有使用extends關鍵字繼承指定的類,那麼編譯器總是默認直接繼承Object類,如果指定繼承其他類,那麼也會間接繼承Object類。


5、在Object類中主要包括clone(),finalize(),equals(),toString()等方法,其中常用的兩個方法爲equals()和toString()。由於所有的類都是Object類的子類,所以任何類都是可以重寫Object類中的方法。


6、Object類中的getClass(),notify(),notifyAll(),wait()等方法不能被重寫,因爲這些方法被定義爲final類型。


7、final關鍵字尅用來修飾類、成員變量和方法等,它通常表示不可變化。例如,使用final修飾的成員變量,一旦賦值之後就不能再更改;使用final修飾的成員方法不能被重寫;使用final修飾的類,是不能夠繼承的。


8、如果一個父類中某個方法被設置爲private修飾符,子類將無法訪問該方法,自然無法覆蓋該方法,所以一個定義爲private的方法隱式被指定爲final類型,這樣無需將一個定義爲private的方法再定義爲final類型。


9、定義在一個類內部的類叫內部類,包含內部類的類稱爲外部類。內部類可以聲明public、protected、private等訪問限制,可以聲明爲abstract的供其他內部類或外部類繼承與擴展,或者聲明爲static、final的,也可以實現特定的接口。static的內部類行爲上象一個獨立的類,非static在行爲上類似類的屬性或方法且禁止聲明static的方法。內部類可以訪問外部類的所有方法與屬性,但static的內部類只能訪問外部類的靜態屬性與方法。必須使用外部類對象來創建內部類對象,而不是直接去new一個。


10、對於多態,可以總結以下幾點:
(1)使用父類類型的引用指向子類的對象; 
(2)該引用只能調用父類中定義的方法和變量; 
(3)如果子類中重寫了父類中的一個方法,那麼在調用這個方法的時候,將會調用子類中的這個方法;(動態連接、動態調用) 
(4)變量不能被重寫(覆蓋),“重寫”的概念只針對方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章