--- tags: Java, Constructor, Inheritance --- # NKUST 2021214: https://github.com/hryjosn/java_class_tutorial ## :memo: ##### 1. 建構元(Constructor) 通常是用來對物件的資料成員做初始化(initialization),設定物件的初值 1. 建構元的名稱必須與其所屬之類別的類別名稱相同 2. 建構元不能有回傳值 3. 建構元在建立物件的時候會被自動呼叫 4. 建構元也可以多載 5. 建構元之間呼叫的方式用 this() 6. 建構元可省略,java會幫你建一個,但如果你有創造有參數的建構元,就一定要傳值進去否則會錯:因為Java就不會幫你自動建立建構元 參見class_ex4.java ##### 2. 繼承 (Inheritance) ![](https://i.imgur.com/x3io4Q1.png) ![](https://i.imgur.com/7HjKPc5.png) 1.如果省略的super(T) 敘述,則父類別中没有引數的建構元還是會被呼叫,可自行試試。 2.呼叫父類別建構元的 super 必須寫在子類別建構元裡的第一個叙述,不能置於它處,否則編譯時將出現錯誤訊息。 3.super 可以多載,也就是說,super 會根據引數的數量及型態,執行相對應之父類别的建構元。 參見class_ex5.java 比較this() super(), this()在同一類別內呼叫他的建構元, super()則是從子類別的建構元呼叫其父類別的建構元 Git 操作 git checkout new branch git pull git merge git push --- > 注意:一個 Java 檔只能一個 public 類別喔,且必須跟檔名相同 !! --- ##### Exercise: 使用繼承及建構元 1. 定義三種角色職業 1. 弓箭手 (HP:15, Att:30, MP:10) 2. 狂戰士 (HP:20, Att:15, MP:5) 3. 魔法師 (HP:10, Att:40, MP:30) 2. 每個角色都要能夠 1. 攻擊 2. 詠唱(喊出自己的技能名稱) 3. 穿戴至少一項武器