java中多态父类的成员变量和方法调用问题

    class Super {
    String name = "父类名字";
    public void setName(String name) {
        System.out.println(this.getClass());
        this.name = name;//赋值给父类的name,name 为字段指向当前类的字段
    }
    public String getName() {
        return this.name;
    }
}
class Sub extends Super {
    String name = "子类的name";
}
public class ExtendsDemo {
    public static void main(String[] args) {
        Super s = new Sub();
        s.setName("张三");
        System.out.println(s.getName());
        System.out.println(s.name);//此时输出父类的name
    }
}   

在继承多态中:
1、对于方法的覆盖(override),new的谁就调谁,这就是多态。
2、对于成员变量的隐藏(hidden),this在哪个类就指向哪个类的成员变量,没有多态。

猜你喜欢

转载自blog.csdn.net/java_collect/article/details/53492854