oop接口,继承,基类,

时间:2012-11-25 20:06:56

标签: c# oop

我正在尝试在实际示例中学习接口和基类。 让我们说我想要抽象玩家实体 在Player.cs上应该是分配玩家的每项运动的所有常见属性和方法。因此,将有TeamSportPlayer,IndividualSportPlayer。 同样,FootballPlayer将派生自TeamSportPlayer,TennisPlayer将派生自IndividualSportPlayer等。所有这些球员都应该能够获得一流的球员及其属性。

希望我不要太困惑。

问题是:这是以oop方式抽象玩家代表的正确方法吗?

你会如何在这个实际例子中做到这一点?

1 个答案:

答案 0 :(得分:2)

抽象类用于定义您永远不会拥有实例的对象。另一方面,接口用于定义对象的行为,接口独立于继承层次结构。

使用您的运动示例:

Player.cs可以是一个抽象类。它有每个球员都有的名字,年龄,地址等字段。但你从来没有在运动场上有“球员”,你有一个“足球运动员”或“篮球运动员”。类FootballPlayer.csBasketballPlayer.cs继承自抽象类Player.cs。

另一方面,接口定义了类共享的一些常见行为。通常用于定义其他类如何与它们交互。例如,如果您有名为TennisPlayer.csBasketballPlayer.csFootballPlayer.cs的类,则可以使用名为IHasJerseyNumber.cs的接口。篮球和足球运动员都有球衣号码,所以他们会继承IHasJerseyNumber.cs界面。网球运动员没有号码,他们不会继承界面。像Referee.cs这样一个完全独立的类也可以实现界面,只要他也有一个球衣号码(在某些运动中可能)。

您可以在这里阅读更多内容:

Interfaces

Abstract classes