首页 > 解决方案 > 从子类对象调用非覆盖方法

问题描述

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

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

标签: javainheritance

解决方案


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

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


推荐阅读