Java關(guān)鍵字extends能繼承私有屬性嗎

小樊
81
2024-09-29 13:19:01

在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)獲取其值。

0