2012-11-25 142 views
0

我想學習接口和基類的實際例子。 假設我想抽象播放器實體 在Player.cs上應該是所有賦予播放器的運動的所有常見屬性和方法。所以,會有TeamSportPlayer,IndividualSportPlayer。 再次,FootballPlayer將派生自TeamSportPlayer,TennisPlayer將派生自IndividualSportPlayer等。所有這些球員都應該有權使用頭等球員及其屬性。oop接口,繼承,基類,

希望我不太困惑。

問題是:這是用oop來抽象玩家表示的正確方法嗎?

你會如何做這個實例?

+5

問題是什麼? – Jasper

+0

你想知道接口和(抽象)類之間的區別是什麼,或者你需要一些設計建議在哪裏使用(抽象)類和接口? – Jay

+0

建議在哪裏使用抽象以及在哪裏使用接口。 – user1765862

回答

2

抽象類用於定義永遠不會有實例的對象。另一方面,接口用於定義對象的行爲,接口獨立於繼承層次結構。

使用你的運動例如:

Player.cs可以是一個抽象類。它擁有每個球員都喜歡的名字,年齡,地址等字段。但是在運動場上你永遠不會有「球員」,你有一名「足球運動員」或「籃球運動員」。類FootballPlayer.csBasketballPlayer.cs繼承自抽象類Player.cs。

另一方面接口定義了類共享的一些常見行爲。通常用於定義其他類如何與它們交互。舉例來說,如果您有稱作TennisPlayer.csBasketballPlayer.csFootballPlayer.cs的類,則可以使用名爲IHasJerseyNumber.cs的接口。籃球和足球運動員有球衣號碼,所以他們會繼承IHasJerseyNumber.cs界面。網球運動員沒有數字,他們不會繼承界面。像Referee.cs這樣的完全獨立的課程也可以實現這個界面,並提供他也有球衣號碼(可能在某些運動中)。

你可以在這裏閱讀更多:

Interfaces

Abstract classes