super关键字与this类似,this表示当前对象,super表示父类对象。
super可以调用父类构造方法、属性和方法。
父类的成员方法与属性在子类中也可以用this关键字调用,因为子类继承父类后,就拥有父类的属性与方法(私有除外)。
子类构造函数默认使用super关键字调用父类无参构造方法(若重载构造方法,则调用重载后的构造方法)。
父类的私有属性可以添加get方法来让子类调用。
class Father{
public String Fname="Father";
private int fage=40;
public int getFage() {
return fage;
}
public Father(){
System.out.println("父类无参构造方法");
}
public Father(String name) {
System.out.println("FatherName:"+name);
}
public void run() {
System.out.println("father run");
}
}
class Son extends Father{
public Son() {
super();//子类构造方法默认使用super关键字调用父类无参构造方法
}
public Son(String name) {
System.out.println("SonName:"+name);
}
public void run() {
super.run();
System.out.println("son run"+" father age" +super.getFage());
}
}
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Son son0=new Son();
Son son=new Son("lj");
son0.run();
son.run();
}
}