在Java中,extends
關(guān)鍵字用于實(shí)現(xiàn)類(lèi)與類(lèi)之間的繼承關(guān)系。但是,extends
關(guān)鍵字只能繼承父類(lèi)的公有和保護(hù)屬性,而不能繼承私有屬性。
私有屬性是類(lèi)內(nèi)部定義的,只能被該類(lèi)的方法和構(gòu)造函數(shù)訪(fǎng)問(wèn)。子類(lèi)無(wú)法直接訪(fǎng)問(wèn)父類(lèi)的私有屬性,因此,即使使用extends
關(guān)鍵字,子類(lèi)也無(wú)法繼承父類(lèi)的私有屬性。
以下是一個(gè)簡(jiǎn)單的示例,說(shuō)明了這一點(diǎn):
class Parent {
private int privateVar;
public Parent(int privateVar) {
this.privateVar = privateVar;
}
public int getPrivateVar() {
return privateVar;
}
}
class Child extends Parent {
public Child(int privateVar) {
super(privateVar);
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child(10);
// 無(wú)法直接訪(fǎng)問(wèn)父類(lèi)的私有屬性
// System.out.println(child.privateVar); // 這行代碼會(huì)導(dǎo)致編譯錯(cuò)誤
}
}
在上面的示例中,Parent
類(lèi)有一個(gè)私有屬性privateVar
,Child
類(lèi)繼承了Parent
類(lèi)。但是,在Child
類(lèi)中,我們無(wú)法直接訪(fǎng)問(wèn)privateVar
屬性,只能通過(guò)Parent
類(lèi)提供的公有方法getPrivateVar()
來(lái)獲取其值。