2014年2月26日 星期三

[Java] extend 問題紀錄 (答)





如果你現在要做一個角色扮演的遊戲當你要換主角手上的武器而武器又非常多種時你會怎麼寫?
class 主角{
武器 }
也就是說我們用一個武器的class當成父類別 將所有能用的武器包含進去
而當主角換武器時只需要new一個正確的武器就行了
武器 = new 弓();

那當主角要使用武器時你會怎麼寫?
(好比說我有攻擊以及讀取詳細資訊這兩個功能)
武器.攻擊();
武器.詳細資訊();
也就是說武器裡面會有一個攻擊的method
抽象method
而用何種攻擊則就是要看繼承他的子類別是如何override這個攻擊的method
也就達到了多樣化及重用的特性
詳細資訊也是一樣

可以把武器的class寫出來看看嗎?

abstract class 武器{
abstract攻擊(){} abstract 說明(){}
}

寫一個劍的class以及斧頭的class繼承武器
劍的攻擊方式突刺,,斧頭的攻擊方式為劈砍

class 劍 extends 武器{
@override
攻擊(){
     突刺
}
}

然後我希望主角用劍攻擊怪物後換成斧頭再攻擊怪物
武器 A= new 劍();
A.攻擊();

沒有留言:

張貼留言