Java理解抽象類與介面遊戲人物簡單案例

2021-08-21 13:30:16 字數 2122 閱讀 8472

為了更好地理解和掌握抽象類與介面的概念,做了乙個以簡單遊戲人物設計來加深理解的案例。

1、首先分析遊戲人物的型別假如分為戰士、法師和射手類英雄他們三種同屬於英雄有姓名,購買**,英雄生命值屬性,都有行走、釋放技能的行為而每種英雄的技能有可能不一樣所以將技能的方法設定為抽象方法。

package com.miaoxiake.day03;

/** * 英雄類

* @author 喵喵俠客

* */

public abstract class hero

public hero(string name, int price, int life)

public abstract void skill();

public void run()

public string getname()

public void setname(string name)

public int getprice()

public void setprice(int price)

public int getlife()

public void setlife(int life)

}

2、定義乙個可以讓英雄瞬間移動的介面,如果某類英雄想擁有瞬間移動的技能直接實現介面即可。

package com.miaoxiake.day03;

/** * 瞬間移動,閃現功能

* @author 喵喵俠客

* */

public inte***ce flashesability

3.建立戰士、法師、射手類繼承英雄抽象類

package com.miaoxiake.day03;

/** * 戰士類

* @author 喵喵俠客

* */

public class warrior extends hero

public warrior(string name, int price, int life)

@override

public void skill()

}

package com.miaoxiake.day03;

/** * 法師類

* @author 喵喵俠客

* */

public class master extends hero

public master(string name, int price, int life)

@override

public void skill()

}

讓射手類實現瞬間移動介面,使射手擁有此功能

package com.miaoxiake.day03;

/** * 射手類

* @author 喵喵俠客

* */

public class shooter extends hero implements flashesability

public shooter(string name, int price, int life)

@override

public void skill()

@override

public void setaction()

}

4、建立測試類

package com.miaoxiake.test;

import com.miaoxiake.day03.hero;

import com.miaoxiake.day03.master;

import com.miaoxiake.day03.shooter;

import com.miaoxiake.day03.warrior;

public class herotest

}

最後執行檢視效果

好了,到此結束。希望對大家能有所幫助

Java抽象類與介面

一.概念 在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。比如 如果我們進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓 三角形這樣一些具體概念。它們是不同的...

JAVA抽象類與介面

抽象方法 使用abstract關鍵字修飾的方法,沒有方法體,抽象方法只能使用public 或者protected修飾。public abstract void fun 抽象類 使用abstract關鍵字修飾的類 包含抽象方法的類是抽象類 抽象類可以不包含抽象方法 抽象類只能被繼承,不能自己建立例項 ...

Java 抽象類 與 介面

如果乙個類含有抽象方法,則稱這個類是抽象類,抽象類必須使用abstract 關鍵字修飾。因為抽象類中含有抽象方法,所以不能用抽象類建立物件。抽象方法 只有宣告,沒有實現。如果乙個類繼承了乙個抽象類,他必須實現這個抽象類的全部抽象方法,否則,他依然是個抽象類。如下 private abstract c...