我想我錯過了OOP編程的一些概念,但我不知道究竟是什麼。使用Java繼承
如何使用從不同類創建的對象?
例如,假設我必須使用卡片。有一個卡類,它包含所有的共享屬性。普通卡片和百搭卡片是從卡片類繼承而來的(百搭卡片可以接管任何卡片顏色),並且一張卡片不值錢也不值得分,所以有一張從標準卡繼承的ScoreCard。
所以,我怎樣才能使用這個模型,當我編程嗎?我在一個數組中創建N卡,並且在生成卡時應該確定實際的卡是否爲小丑/分數/普通卡?後來我該如何測試一張卡片是一張小丑/正常/記分卡?因爲如果ScoreCard
有一個private int score;
和setter/getters NormalCard
不會有這個屬性,所以當我寫一個if語句時,我不知道要測試什麼。
Card[] cardsArray = new Card[52];
for (int i = 0; i<cardsArray.length;i++) {
//Some source tells if a card is a Score/Normal/Joker
String src;
switch (src) {
case "Joker":Card[i] = new JokerCard();
break;
case "Normal":Card[i] = new NormalCard();
.... etc
}
}
//Some Userevent:
..userevent(Card in) {
//Test what
if (in.value == 4) {
this.user.setScore(this.user.getScore()+in.score);
}
}
好的,所以我應該使用多態性來完成這個工作,謝謝。 – notsoogood 2013-03-24 11:33:29