我正在阅读简单继承的示例,并且遇到了基本想法,即正方形是基本类型,矩形是从正方形派生的。C#中的差继承示例#
用于设置方形尺寸的示例使用了名为Size
的属性。 矩形的示例然后继续使用Width
和Height
。
这没有任何意义,所以我编码。
问题似乎是在访问rectangle
时,总会出现一个名为'Size
'的混淆属性。
我有这个权利吗?或者当看到rectangle
时,有没有办法隐藏其他班级看到Size
?
public class square
{
public int Size { get; set; }
public square(int size)
{
this.Size = size;
}
}
public class rectangle : square
{
public int Width { get { return base.Size; } set { base.Size = value; } }
public int Height { get; set; }
public rectangle(int width, int height)
: base(width)
{
Height = height;
}
}
它应该是周围的其他方法:方应该从矩形派生。一个正方形也有一个宽度和一个高度,它们恰好等于正方形。当然,矩形可以具有不同的值。 – xxbbcc 2012-02-16 22:41:54
不是你在研究中遇到的第一个不好的继承例子,或者你在这个问题上的职业生涯。恭喜发现它,谷歌代码有时会闻到...... – 2012-02-16 22:51:47
@Tod第35项是“考虑虚拟功能的替代品”。我的答案并不包含一个虚拟函数(事实上,除非你从'Square'或'Rectangle'派生另一个类,否则你不能改变任何一种类型的对象),所以请注意评论如何让我的答案“死了错?“ – 2012-02-16 22:58:36