繁体   English   中英

oop接口,继承,基类,

[英]oop interface, inheritance, base class,

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

希望我不要太困惑。

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

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

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

使用您的体育示例:

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

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

你可以在这里阅读更多:

接口

抽象类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM