public abstract class Vehicle {
public void drive(){
spinTheWheels(subclass.getNumWheels());
}
public void spinTheWheels(int wheelsTotal){
....
}
}
public class Car extends Vehicle {
private final int numWheels = 4;
...
}
在上面的示例中,我想在车辆中引用Car的numWheels。这怎么可能?
答案 0 :(得分:0)
这是不可能的。基类永远不知道子类中的内容,主要是因为它不知道它在哪里被继承。 这是因为继承应该起作用的方式。子类应该添加或修改基类的行为,基类应该包含所需的基本行为和属性。
编辑:添加内容以澄清OP的评论。
如果你希望基类有一个轮数的方法,那么很可能需要知道成员属性或名为NumberOfWheels的可变的存在。在这种情况下,您需要在基础Vehicle类中声明它。您将无法在派生类中声明此变量并在基类中使用它。
我可以看到你有两个选择,
答案 1 :(得分:-1)
这不可能,您可以使用“super”关键字从子类引用超类的变量,但反之亦然。超类对它的子类一无所知。