super 修饰属性 方法
在子类中,可以用super.显式的去调用父类中的属性和方法,一般情况下,super.可以省略不写。
特殊情况下,子类中访问属性和方法,子类与父类属性、方法重名时,访问父类必须加super.,访问子类this.(可省略)
super修饰构造器
空构造器
空构造器含有super(),作用调用父类的空构造器,一般省略不写。
一般构造器(有参)如果没有调用显式的调用父类构造器,有默认的super(),可写(显化)可不写
带参构造器
- 利用super调用父类构造器,已经调用显式的构造器,不需要调用默认的super();
- 在构造器中,super调用父类构造器和this调用子类构造器,只能选择一个,两者不能共存
理由:
相关代码
public class Student extends Person{
int score;
public Student(){
/*super();可写,可不写,默认有*/
}
public Student(int score){
// super(); //可写可不写,默认有(显化问题)
this.score = score;
}
public Student(int age , String name , int score){
// super(){}
super(age,name);//利用super调用父类构造器,已经调用显式的构造器,不需要调用默认的super()
/*this.age = age;
this.name = name;*/
/*super.age = age;
super.name = name;*/
this.score = score;
}
}
public class Person {
int age;
String name;
public Person(){
}
public Person(int age ,String name){
this.age = age;
this.name = name;
}
}