java super關鍵字簡述
- super關鍵字訪問父類屬性,訪問權限必須是允許的
- super關鍵字訪問父類屬性,訪問權限必須是允許的
- 當創建子類對象時,默認調用父類的無參構造方法,除非顯式調用父類的有參構造方法,也就是說
**子類創建對象時,父類構造方法,必須調用一個**
,要么調用一個父類的無參構造方法,要么調用一個父類的有參構造方法
注意: 通過super關鍵字可以訪問父類的構造方法,要求必須寫在子類構造方法的第一句
package com.qfedu.Test7;
/*** 寵物父類* 姓名* 愛心值* 健康值* @author **/
public class Pet {public String name;public int health;public int love;public void setName(String name) {this.name = name;}public String getName() {return name;}public void setHealth(int health) {if (health>=0&&health<=100) {this.health = health;}else {System.out.println("健康值輸入錯誤,默認60");this.health = 60;}}public int getHealth() {return health;}public void setLove(int love) {this.love = love;}public int getLove() {return love;}public void print() {System.out.println("寵物名字為:"+name);System.out.println("寵物健康值為:"+health);System.out.println("寵物愛心值為:"+love);}public Pet(String name,int health,int love) {this.name = name;this.health = health;this.love = love;}public Pet() {System.out.println("父類無參構造");}
}
package com.qfedu.Test7;
/*** 寵物的子類 Dog類* @author **/
public class Dog extends Pet{private String strain;public String getStrain() {return strain;}public void setStrain(String strain) {this.strain = strain;}public Dog(String name ,int health ,int love,String strain) {super(name,health,love);//調用有參構造必須在第一行System.out.println("調用了有參構造");this.strain = strain;}public void printDog() {super.print();System.out.println("狗的品種是: "+strain);}public Dog() {}}
package com.qfedu.Test7;
/*** 寵物的子類 企鵝類* @author **/
public class Penguin extends Pet{private String sex;public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Penguin(String name ,int health ,int love,String sex) {this.sex = sex;super.health = health;super.love = love;super.name = name;}public void printPenguin() {super.print();System.out.println("企鵝性別是:"+sex);}public Penguin() {}}
package com.qfedu.Test7;/*** 測試類* 子類對象創建 必須調用一個父類構造方法* @author **/
public class Test {public static void main(String[] args) {//調用了有參構造Dog dog = new Dog("張三",100,100,"拉布拉多");dog.printDog();System.out.println("==================");//默認調用一個無參構造方法Penguin penguin1 = new Penguin("李四",20,30,"雌性");penguin1.printPenguin();}
}