在java继承中对于成员变量和方法的处理是不同的

在java继承中对于成员变量和方法的处理是不同的
用javap工具分析如下类:

class Animal {
    private String name ;
    public void info (){
        System .out. println(name );
    }
}

public class Wolf extends Animal {
    private double weight ;
}


从编译后的class文件可以看出:

父类的属性并未加入到子类中,但是父类的方法却加入了子类中。

这说明 子类和父类可以同时拥有同名的实例变量,子类的值并未将父类的值覆盖掉,而若是有同名的方法的时候,子类的方法会把父类的方

法覆盖掉,所以:

父类 对象 = new 子类(); 的时候:

对象.属性 ----》 调用的是 父类的

对象.方法 ----》 调用的是 子类的




原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531694.html