直接貼代碼:
package source; public class Hero { private int hp; private double damage; private String name; Hero(String name){ this.name = name; } Hero(String name,int hp,double damage){ this(name); this.hp = hp; this.damage = damage; } public void setHp(int hp) { this.hp = hp; } public int getHp() { return hp; } public static void main(String[] args) { Hero h = new Hero("garren",10,1.1); } }
優點:公共的構造器代碼只需要編寫一次,提高復用性
下面我們來看子類調用父類的構造函數:
public Manager(String name,double salary,double bonus){ super(name,salary); this.bonus = bonus; }
注意:
1,使用super調用超類構造器的語句必須是子類構造器的第一條語句。
2,如果子類的構造器沒有顯式地調用超累的構造器,則自動調用超類默認(沒有參數)的構造器。如果超類沒有不帶參數的構造器,在子類中又沒有顯式調用超類的其他構造器,那么Java編譯器將報錯。
3,被調用的父類的該構造器必須被public或protected修飾
this和super都用類似的兩個用法:
1,引用隱式參數(調用超類方法)
2,調用該類的其他構造器(調用超類的構造器)