extends關鍵字

extends —— 繼承

1、目的:解決代碼的複用性問題,繼承要表達的是 一種有關係的類
2、方法的重寫(Overwrite)
(1)定義:子類重寫了父類的一個方法,要求:
A.方法名稱相同,形參列表相同,返回類型相同
特例: 允許返回值類型是父類方法返回類型的子類
List method();
ArrayList method(); (其中ArrayList是
List的子類)
B.訪問限定符:子類的不能比父類的更封閉,若父類的是public, 子類就不能是private.

(2)應用場景:一般發生在父類繼承關係中,子類重寫父類方法。
(3)目的:針對同一行爲,子類表現出和父類不同 的方式

3、繼承關係的訪問
(1)子類的對象中,可以認爲存在一個完全體的父類對象。父類的所有屬性,在子類對象中都是存在,但可能沒有訪問權限
(2)訪問權限:子類能否訪問父類的屬性和方法主要看父類成員的訪問限定符是下面哪一個:
public/protected 可以
default 如果在一個包下是可以的
private 不可以
(3)在子類的構造方法中,必須調用父類的構造方法,且必須出現在第一行;如果子類的構造方法中沒有顯式調用父類的構造方法,則系統默認調用父類無參數的構造方法。 如果子類的構造方法中,既沒有顯式的調用父類構造方法,而父類中又沒有默認無參的構造方法,則編譯會出錯,所以,通常我們需要顯示的:super(參數列表),來調用父類有參數的構造方法。
(4)super關鍵字 (super不是引用)
1.明確訪問父類的屬性或者方法
2.顯示調用父類的構造方法,且必須出現在第一行

Class A {
     Public int a = 10;
     Public void print() {System.out.println("父類的print");}
}
 Class B extends A {
     Public int a = 100;
     Public void print() {System.out.println("子類的print");}
     Public void test() {super.a;super.print();}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章