从子类对象调用非覆盖方法

时间:2019-12-26 12:16:43

标签: java inheritance

我没有得到的是钱是从Parent类中挑选出来的,但是这个指针引用属于Child对象? 这两件事都应该属于一个范围吗?

class Parent
{
    int money=10;
    Parent parentMethod(){
        System.out.println(money);
        return this;
    }
}
class Child extends Parent{
    int money=11;

}
public class Demo1 {
    public static void main(String[] args) {
        Child ch=new Child();
        System.out.println(ch.parentMethod());
        System.out.println(ch.parentMethod() instanceof Child);
    }
}

输出:

10
demos.Child@1540e19d
10
true

1 个答案:

答案 0 :(得分:2)

实例变量不能被覆盖。 parentMethod()是在Parent类中定义的,因此它只能看到money类的Parent实例变量。

如果您在parentMethod()类中覆盖了Child,并在money类方法的主体中访问了Child变量,您将看到Childmoney实例变量。

相关问题