Java 自學 - 介面與繼承 介面

Noah_WB發表於2023-04-12

設計 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章