转自 https://blog.csdn.net/tiansheshouzuo/article/details/86026636
在子类继承父类中,一般有一行super的语句,需要记住三种使用方法:
1、super.变量/对象名;
使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作
2、super.方法名();
直接访问并调用父类中的方法
3、super();
调用父类的初始化方法,其实就是调用父类中的public xxx()方法,通常第三种指代的是super()的省略写法,系统会默认添加此句。
特殊情况:如果父类没有无参的构造函数,所以子类需要在自己的构造函数中显示的调用父类的构造函数,即不能使用系统默认的“super()”,而需要显性写出super(xxx)
除了Object类之外其他所有类的构造方法第一句总是super(…)
任何类的构造方法中,若是构造方法的第一行代码没有显式的调用super(…);那么Java默认都会调用super();
public Bird(){
super(); //<-这行代码可有可无,反正所有类的构造方法第一句就是super,如果不写编译器会自动加上
System.out.println("建一个鸟对象");
}