我在C#工作,我正在尝试编写一个带有两个子类的AbstractTriangle层次结构:Triangle和SpecialTriangle。
三角形由线组成,但SpecialTriangles由SpecialLines组成!
我可以想出多种方法来存储三角形中的线条:
处理这些层次结构的正确,最优雅的方法是什么?
我是否需要牺牲返回具体类型线的三角形才能使其正常工作?
答案 0 :(得分:0)
使用泛型而不是继承:
class Triangle<T> where T: ILine
{
List<T> edges;
···
}
然后将其实例化为
Triangle<Line>
或
Triangle<SpecialLine>