[英]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.