我只需要帮助从子类中获取值, 这涉及这种情况的多态性。
首先说我有两个班级
class Parent{
int i =1;
}
class Child extends Parent{
int x = 5;
}
然后我想要发生的是 当我做的时候
父z =新Child();
我想在孩子身上得到x的值。
答案 0 :(得分:2)
您需要将方法getValueOfX()
添加到Parent
并在Child
中覆盖它。您可以在父项中执行不同的操作,其中一个选项是抛出异常,因此添加到Parent
:
public int getValueOfX() {
throw new UnsupportedOperationException();
}
并在Child
@Override
public int getValueOfX() {
return x;
}
另一个更好的选择是在Parent
抽象中创建方法,但是你需要使整个类抽象化:
abstract class Parent{
int i =1;
abstract public int getValueOfX();
}
答案 1 :(得分:0)
您可以将z转换为Child
Parent z = new Child();
int x = ((Child)z).x;
System.out.println(x);//prints 5