如何从父类中获取子类中的值

时间:2017-10-26 01:41:57

标签: java polymorphism

我只需要帮助从子类中获取值, 这涉及这种情况的多态性。

首先说我有两个班级

class Parent{
    int i =1;
}

class Child extends Parent{
    int x = 5;
}

然后我想要发生的是 当我做的时候

父z =新Child();

我想在孩子身上得到x的值。

2 个答案:

答案 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