如果我有一个抽象类和一个扩展它的类,我怎样才能获得将它扩展到扩展类的类的变量,如下所示:
abstract class A {
void getVariable () {
//get *variable* from class B and print it out
}
}
class B extends A {
int variable = 5;
}
答案 0 :(得分:3)
您不能直接从子类访问变量字段,但您可以这样做
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;
}
}
答案 1 :(得分:0)
忘记变量:你可以继承和覆盖的是行为(=方法)。试试这个:
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.
}
}
答案 2 :(得分:0)
variable
仅对课程B
已知。它的超类A
不知道它。如果您将variable
移至超类A
并且未将其标记为private
,则可以从B
访问它。