gpt4 book ai didi

c# - C#实现继承的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:28 26 4
gpt4 key购买 nike

<分区>

下面的示例工作正常,但它有一个缺陷:Square 对象具有 WidthHeight 属性矩形Square 对象的良好实现不会向用户提供这些属性:

public class Rectangle
{
public double Width { get; set; }
public double Height { get; set; }
public double Area { get { return Width * Height; } }
}

public class Square : Rectangle
{
public double Side
{
get { return Width; }
set { Width = Height = value; }
}
}

我想到了几种方法来解决这个问题(包括新属性和 Obsolete 标签)。最好的解决方案是取消继承,而是保留一个 Rectangle 作为 Square 对象的私有(private)变量。这可行,但需要为 Square 重写 Rectangle 方法,这违背了 OOP 的全部目的。请帮助我了解什么是正确的实现方法。

谢谢

26 4 0
文章推荐: c# - 在 Controller 外使用 HttpContext
文章推荐: css - 从