public class Father {
private String name;
private Integer age;
protected String school = "BUPT";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
private void show(){
System.out.println("name:"+name+"age:"+age);
}
}
public class Son extends Father{
private String study;
public String getStudy() {
return study;
}
public void setStudy(String study) {
this.study = study;
}
public void updateSchool(String school){
this.school = school;
}
public void printSchool(){
System.out.println("school:"+super.getSchool());
}
}
@Test
public void FatherSon(){
Son son = new Son();
son.setAge(1);
son.printSchool(); //school:BUPT
son.updateSchool("bupt2021");
System.out.println(son.getSchool()); //bupt2021
son.printSchool(); //school:bupt2021
}
子类extends继承父类变量问题,
若是父类使用private定义变量,则子类继承父类:
当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后再父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象。
虽然说子类对象内存空间包含这个private变量,但是子类不能自己编写函数对这个private变量进行直接修改,访问。只能通过继承下来的public函数对private变量进行修改,访问。
若是父类使用public定义变量,则子类继承父类之后:
当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后再父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象。
虽说生成对象的方式一样,但是子类也可以自己编写方法来对这个变量进行改变,并且子类改变后,这个父类变量也是跟这一起更改。
子类extends继承父类变量问题
最新推荐文章于 2023-07-12 21:15:00 发布