【发布时间】:2021-01-26 17:04:50
【问题描述】:
CannibalGhost : Ghost(来自 Ghost 的 CannibalGhost dervies)
CannibalGhost 可以吃掉任何种类的幽灵,并将它们的高度加到他的高度上。但是Ghosts 应该可以任意大,而CannibalGhosts 的最大高度应该是 50。在任何情况下都不能超过。不是通过。 set-accessor 而不是通过构造函数。
到目前为止我已经尝试过:
-
覆盖
Constructor:无法覆盖构造函数
-
在
Set-Accessor中实现 if(height >= 50)如果我在
Main-Program中使用构造函数创建对象,则不起作用 -
在 Main-Code 中实现一个屏障,使高度永远不会超过 50
如果我以后想要
CannibalGhost的新对象,则不起作用(而且很乱) -
写成
CannibalGhost不是从Ghost派生的所以我可以编写一个新的构造函数和
set-Accessor,上限为 50。 它有效,但我希望CannibalGhosts也成为一个 Ghost(源自 Ghost)
总结:
如何将CannibalGhost 的属性Height 设置为最大50,但不在基类Ghost 中?
【问题讨论】:
-
也许你在工厂中创建了 *Ghosts,它会检查高度:en.wikipedia.org/wiki/Factory_method_pattern 我不喜欢如果高度 > 50 时构造函数抛出异常的方法
-
请出示一些代码。
标签: c# oop properties max overriding