簡體   English   中英

如何從抽象類中獲取類的變量?

[英]How can I get a variable of a class from an abstract class?

如果我有一個抽象類和一個將其擴展的類,那么如何獲取將其擴展到擴展的類的類的變量,如下所示:

abstract class A {
    void getVariable () {
        //get *variable* from class B and print it out
    }
}

class B extends A {
    int variable = 5;
}

您不能直接從子類訪問變量字段,但是可以這樣做

abstract class A {
   abstract int getVariable ();

   void anotherMethod() {

       System.out.println("Variable from child: " + getVariable());
   }
}

class B extends A {
    int variable = 5;

    @Override
    int getVariable() {
        return variable;
    }
}

忘記變量:您可能會繼承和覆蓋的是行為 (方法)。 嘗試這個:

abstract class A {
    protected abstract int getVariable ();
}

class B extends A {
    private int variable = 5;
    protected int getVariable ()
    {
        return variable;
    }
}   

class C extends A {
    protected int getVariable ()
    {
        return 0; // This class might decide not to define its own variable.
    }
}

variable僅對於B類是已知的。 它的超類A對此一無所知。 如果將variable移至超類A且未將其標記為private ,則可以從B訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM