java之繼承詳解

2021-08-14 16:17:56 字數 1454 閱讀 2775

/**

- a稱之為基類或父類

*/public classa }

/** - b稱之為衍生類或子類

*/class

bextends

a}

/**

- a基類或父類

*/public

class

a public

void

method2()

public

void

method3()

}/**

- b繼承a

*/class b extends a

}class test

}

public classa }

/** - b繼承a

*/classb }

/** *c同時繼承a,b

*/class

cextends

a,b

public

class

test

}class

father

father(string a)

}class

sonextends

father

son(string b)

}執行結果:

父類的無參建構函式

子類的無參建構函式

父類的無參建構函式

子類的有參建構函式

從上面的例子可以看出,當我們new son()物件時,父類的無參構造器會優先被呼叫執行,然後再執行子類的構造方法,也就是說父類的物件優先初始化。這是因為當我們new son()物件時,編譯器會預設為我們新增一行**super();放在子類構造器的首位置。所以會優先呼叫父類無參構造器,執行完後再呼叫子類無參建構函式。同理,new son(「小明」)時編譯器也會預設為我們新增一行**super();放在子類構造器的首位置,所以有了如上結果。

當然上面的例子只是針對父類有無參建構函式的情況,編譯器可以很容易地呼叫它們,因為不存

在具體傳遞什麼自變數的問題那如果父類沒有無參建構函式呢?(關於建構函式,已寫過一篇進行詳細介紹,這裡不再多講。請參考建構函式)這時就得我們手動呼叫。

public

class

test

}class

father

father(int i)

}class

sonextends

father

son(string a, int i)

}

可以看出父類中沒有無參建構函式,我們只能手動顯示呼叫,而且手動顯示呼叫時super中的型別在父類中必須存在。所以建議,當父類中存在有參建構函式時,我們都手動新增乙個無參建構函式,避免不必要的錯誤和麻煩

Java基礎之繼承

泛化 從多個類中,抽取相同部分,生成父類的過程。先泛華再繼承。繼承特點 1.多級繼承 將乙個子類作為另乙個類的父類 2.傳遞性 子類可以使用父類的屬性和功能,反之不行 3.乙個類只能繼承乙個類 繼承中的構造方法 例項化子類物件,一定會使用super 先呼叫父類的構造方法,再呼叫子類的構造方法,如果調...

java三大特性之 繼承

1 繼承 子類繼承父類的特性,只支援單繼承,只有乙個父類。這樣是避免多個父類時的衝突。子類繼承了父類的特性,同時擴充套件功能。繼承的出現 提高了 的復用性,讓類與類之間產生了關係。子類父類函式的特點 子類出現和父類一樣的函式時,覆蓋父類的函式。重寫。父類獨有的函式,子類沒出現,子類同樣保留了父類函式...

java 物件導向之繼承extends

繼承官方定義 繼承 英語 inheritance 是物件導向軟體技術當中的乙個概念。如果乙個類別a 繼承自 另乙個類別b,就把這個a稱為 b的子類別 而把b稱為 a的父類別 也可以稱 b是a的超類 繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的 在令子類別繼承父類別的同時,可以...