繁体   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