建模一个简单的类层次结构,C#

建模一个简单的类层次结构,C#,c#,C#,我有6个需要建模的概念: 车辆 汽车 卡车 道路 驱力 船 最明显的是,我不想透露太多,因为这听起来像是家庭作业 然而,您正在寻找的概念是接口 接口,允许您拥有不直接相关的对象(也就是说,不一定有一个共同的类,它们从对象)来实现相同的方法。因此,它们允许您通过其行为处理两种不同的事物(Person和Carsay)(例如,两者都可以实现IMove接口,定义Move方法) 话虽如此,您可能不需要界面就可以离开这里,只需考虑哪些项目使用道路,哪些项目不使用。我认为这些“Road Using”

我有6个需要建模的概念:

车辆 汽车 卡车 道路 驱力 船


最明显的是,我不想透露太多,因为这听起来像是家庭作业

然而,您正在寻找的概念是接口

接口,允许您拥有不直接相关的对象(也就是说,不一定有一个共同的类,它们从
对象
)来实现相同的方法。因此,它们允许您通过其行为处理两种不同的事物(
Person
Car
say)(例如,两者都可以实现
IMove
接口,定义
Move
方法)



话虽如此,您可能不需要界面就可以离开这里,只需考虑哪些项目使用
道路
,哪些项目不使用。我认为这些“Road Using”类有一个共同祖先的空间,它也是从
Vehicle

继承下来的,您可能希望将Road传递给Drive()方法。Road也应该是一个抽象类,你可以把它分为GravelRoad、ResidentialStreet、MajorStreet、高速公路或类似的类。@David-除非你想驾驶你的船。道路上有汽车,汽车也可以驾驶。老实说,这个模型在这里有点不清楚,因为根据您精确建模的内容,我可以看到以下情况:a)一条道路作为一组汽车(当前在其上)实现,或者B)一辆汽车有一个代表其当前道路的道路成员/字段。这实际上取决于模型的更多细节,而您还没有给出。告诉你的A&B教授,解释一下这两种情况,我相信这会给你带来好成绩。祝你好运@Graphain——很好的观点:)但如果这是家庭作业,那么老师可能是想说明现实世界的抽象并不总是能清晰地转化为软件。也许Road需要是Throughtree的一个子类,另一个明显的子类是Waterway?