Java 自學 - 介面與繼承 介面
設計 Java 的介面
在設計 LOL 的時候,進攻類英雄有兩種,一種是進行物理系攻擊,一種是進行魔法系攻擊
這時候,就可以使用 介面來實現這個效果。
介面就像是一種約定,我們約定某些英雄是物理系英雄,那麼他們就一定能夠進行物理攻擊。
步驟 1 : 物理攻擊介面
建立一個介面 File->New->Interface AD ,宣告一個方法 physicAttack 物理攻擊,但是沒有方法體,是一個 “ 空” 方法
package charactor; public interface AD { //物理傷害 public void physicAttack(); }
步驟 2 : 設計一類英雄,能夠使用物理攻擊
設計一類英雄,能夠使用物理攻擊,這類英雄在 LOL 中被叫做 AD 類:ADHero 繼承了 Hero 類,所以繼承了 name,hp,armor 等屬性
實現某個介面,就相當於承諾了某種約定
所以, 實現了 AD 這個介面,就 必須提供 AD 介面中宣告的方法 physicAttack() 實現在語法上使用關鍵字 implements
package charactor; public class ADHero extends Hero implements AD{ @Override public void physicAttack() { System.out.println("進行物理攻擊"); } }
步驟 3 : 魔法攻擊介面
建立一個介面 File->New->Interface AP ,宣告一個方法 magicAttack 魔法攻擊,但是沒有方法體,是一個 “空” 方法
package charactor; public interface AP { public void magicAttack(); }
步驟 4 : 設計一類英雄,只能使用魔法攻擊
設計一類英雄,只能使用魔法攻擊,這類英雄在 LOL 中被叫做 AP 類:APHero 繼承了 Hero 類,所以繼承了 name,hp,armor 等屬性 同時,實現了 AP 這個介面,就 必須提供 AP 介面中宣告的方法 magicAttack()
package charactor; public class APHero extends Hero implements AP{ @Override public void magicAttack() { System.out.println("進行魔法攻擊"); } }
步驟 5 : 設計一類英雄,既能進行物理攻擊,又能進行魔法攻擊
一種英雄,能夠同時進行物理攻擊和魔法攻擊 比如伊澤瑞爾,皮城女警凱特琳
package charactor; //同時能進行物理和魔法傷害的英雄public class ADAPHero extends Hero implements AD,AP{ @Override public void magicAttack() { System.out.println("進行魔法攻擊"); } @Override public void physicAttack() { System.out.println("進行物理攻擊"); } }
練習:
(設計一個治療者介面:Healer
該介面宣告有方法: heal ()
設計一個 Support 類,代表輔助英雄,繼承 Hero 類,同時實現了 Healer 這個介面)
答案:
public interface Healer { public void heal(); //加血}
.
public class Support extends Hero implements Healer{ @Override public void heal() { System.out.println(name+" 加了一口血"); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026910/viewspace-2945223/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java繼承和介面Java繼承
- 繼承與介面 (轉)繼承
- Java中介面與繼承的區別Java繼承
- 繼承(extends)與介面( implements)繼承
- Java介面之間的繼承Java繼承
- JAVA介面繼承、抽象類等Java繼承抽象
- TypeScript 介面繼承TypeScript繼承
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- 澄清Java語言介面與繼承的本質(轉)Java繼承
- TypeScript 介面繼承類TypeScript繼承
- 學習部落格之Java繼承多型介面Java繼承多型
- C#中介面的繼承C#繼承
- 類的繼承,介面的使用繼承
- C#虛基類繼承與介面的區別C#繼承
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- Java:類與繼承Java繼承
- 為啥要繼承一個空介面繼承
- C# OOP:繼承,介面和抽象類C#OOP繼承抽象
- Henry的VB.NET之旅(九)—介面繼承繼承
- 重繼承、介面和異常處理 (轉)繼承
- java繼承與多型Java繼承多型
- Java的類與繼承Java繼承
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- 如何在Java消除實現繼承和麵向介面程式設計Java繼承程式設計
- Java程式碼塊與Java繼承Java繼承
- 多繼承 與 多重繼承繼承
- 第二十八節:Java基礎-進階繼承,抽象類,介面Java繼承抽象
- Java繼承Java繼承
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- Kotlin學習快速入門(3)——類 繼承 介面Kotlin繼承
- 關於Java中的物件、類、抽象類、介面、繼承之間的聯絡Java物件抽象繼承
- Java中類繼承、介面實現的一些細節(長期更新)Java繼承
- Java中的繼承與組合Java繼承
- Java 繼承與多型實驗Java繼承多型
- 聊聊TypeScript中類、介面之間相互繼承與實現的那些事兒TypeScript繼承
- JAVA物件導向高階二:JDK8開始,介面中新增的三種方法 介面的多繼承,使用介面的注意事項Java物件JDK繼承
- java繼承extendsJava繼承