注:默认的构造方法的访问权限是跟随class的访问权限,
如果编写一个构造方法,既没有调用 super() 也没有调用 this(),编译器会自动插入一个调用到父类构造方法中,而且不带参数。
super关键字的用法
-
调用父类构造方法
-
调用父类的方法
值得注意的是:
-
super()必须放在构造方法的最顶端。
-
不能在构造方法以外的任何方法内调用构造方法。
方法的重写(覆盖)、与重载
方法重写的原则:
-
重写方法在写法上与原方法大致相同,但访问权限不允许缩小
-
被static、final、private修饰的方法不能被重写(静态绑定)
Java方法重载
注:子类可以重载父类的方法,静态方法可以被重载
特别说明:Java父类和子类中的方法都会参与重载,例如,父类中有一个方法是 func(){ ... },子类中有一个方法是 func(int i){ ... },就构成了方法的重载。
重写和重载的不同:
-
方法重写要求参数列表必须一致,而方法重载要求参数列表必须不一致。
-
方法重写要求返回类型必须一致,方法重载对此没有要求。
-
面向的方法-> 方法重写只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法(包括从父类中继承而来的方法)。
-
方法重写对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
-
父类的一个方法只能被子类重写一次,而一个方法可以在所有的类中可以被重载多次。