0

我正在尝试根据实际示例学习接口和基类。假设我要抽象 Player 实体 On Player.cs 应该是分配了玩家的每项运动的所有通用属性和方法。所以,会有TeamSportPlayer、IndividualSportPlayer。同样,FootballPlayer 将派生自 TeamSportPlayer,TennisPlayer 将派生自 IndividualSportPlayer 等等。所有这些玩家都应该有权访问一流的 Player 及其属性。

希望我不会太混乱。

问题是:这是用 oop 抽象玩家表示的正确方法吗?

您将如何在这个实际示例中执行此操作?

4

1 回答 1

2

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

使用您的运动示例:

Player.cs可以是抽象类。它具有每个球员的姓名、年龄、地址等字段。但运动场上永远不会有“球员”,只有“足球运动员”或“篮球运动员”。而类FootballPlayer.csBasketballPlayer.cs继承自抽象类Player.cs。

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

你可以在这里阅读更多:

接口

抽象类

于 2012-11-25T20:22:59.603 回答