【发布时间】:2011-06-08 01:13:36
【问题描述】:
让我们有三个类;
Line
PoliLine
SuperPoliLine
为所有这三个类定义了一个Distance。
但只有Line一个Distance可以设置。
有没有可能建立一个通用的abstract(MustInherit)类Segment,有一个Distance作为(abstract + ? 只读) 成员?
VB.NET 的问题,但也欢迎 C# 回答。
业务背景
想象一辆公共汽车。它有很多 Stations、MainStations 和 2 个TerminalStations。所以 Line 在 2 个 Station 之间,PoliLine 在 2 个 MainStations 之间,SuperPoliLine 在 2 个 TerminalStation 之间。所有“线”都是“线段”,但只能定义2个车站之间的距离A->B - Line。
【问题讨论】:
-
你希望 Segment 类继承自 Line?
-
@Andrew Bezzub:是的。我将 Line 更改为 Segment :) 让我更“现实”。所以 Line 应该继承自 Segment。
-
就我所知,折线不是直线。由于没有给出“是”关系,因此折线应该是线的组合,但不能向下转换为线,甚至不能转换为线段。也许在这里声明接口会更合适。在这种情况下,superpolyline 没有多大意义,因为多条折线也是一条折线
-
Serhio,你的设计不连贯。