2012-11-25 118 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