[英]oop interface, inheritance, base class,
我正在尝试在实际示例中学习接口和基类。 让我们说我想要抽象玩家实体在玩家。应该是所有玩家被分配的运动的常见属性和方法。 因此,将有TeamSportPlayer,IndividualSportPlayer。 同样,FootballPlayer将派生自TeamSportPlayer,TennisPlayer将派生自IndividualSportPlayer等。 所有这些球员都应该能够获得一流的球员及其属性。
希望我不要太困惑。
问题是:这是以oop方式抽象玩家代表的正确方法吗?
你会如何在这个实际例子中做到这一点?
抽象类用于定义您永远不会拥有实例的对象。 另一方面,接口用于定义对象的行为,接口独立于继承层次结构。
使用您的体育示例:
Player.cs
可以是一个抽象类。 它有每个球员都有的名字,年龄,地址等字段。但你从来没有在运动场上有“球员”,你有一个“足球运动员”或“篮球运动员”。 而FootballPlayer.cs
和BasketballPlayer.cs
类继承自抽象类Player.cs。
另一方面,接口定义了类共享的一些常见行为。 通常用于定义其他类如何与它们交互。 因此,例如,如果你有名为TennisPlayer.cs
, BasketballPlayer.cs
和FootballPlayer.cs
类,你可以拥有一个名为IHasJerseyNumber.cs
的接口。 篮球和足球运动员都有球衣号码,所以他们会继承IHasJerseyNumber.cs
界面。 网球运动员没有号码,他们不会继承界面。 像Referee.cs
这样的完全独立的类也可以实现界面,只要他也有一个球衣号码(在某些运动中可能)。
你可以在这里阅读更多:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.