Java子类和父类同名属性时,默认取得是子类的,还是父类的?父类怎么取?

568 阅读1分钟

 1. 一般情况下,继承关系中使用的都是子类,取得值为子类的。即使父类的同名属性,初始化了同名属性也是这样。

class Person {
    private String name;
    public Person() {
      this.name = "222";
    }
}
class Son extends Person {
    private String name; 
}

//测试 结果 111
Person son = new Son();
son.setName("111");
System.out.println(son.getName());

 2. 怎么取父类的值。使用反射 。

// 1,获取父类的 class 对象
Class<Person> superclass = (Class<Person>) son.getClass().getSuperclass();
// 2,获取 父类对象
Person person = superclass.newInstance();
System.out.println(person.getName());