这个问题一直困扰着我,我现在已经写了 4 个包装器。我确定我做错了,需要弄清楚我的理解在哪里分支。
假设我正在使用 Rectangle 类来表示金属条。(这比动物效果更好)
所以说基类称为“Bar”。
private class Bar
{
internal Rectangle Area;
}
所以。现在我们制作一个矩形,比如 300 x 10 个单位。
private Bar CreateBar()
{
Bar1 = new Bar1();
Bar1.Area = new Rectangle(new Point(0,0), new Size(300,10));
return Bar1;
}
太棒了,所以我们有一个基本酒吧。
现在假设我们想让这个酒吧有一种材料——比如钢。所以。. .
private class SteelBar : Bar
{
string Material;
}
所以如果我这样做了。. .
private SteelBar CreateSteelBar()
{
SteelBar SteelB = new SteelB();
Bar B = CreateBar();
SteelB = B;
SteelB.Material = "Steel";
return SteelB;
}
如果我调用 CreateSteelBar,从我得到的信息中,它会创建一个调用 CreateBar 的钢筋。所以我最终得到了一个带有 300 x 10 矩形的钢筋,以及一个用于材料的空字符串。然后我将材料设置为钢。
当我在我的程序中尝试类似的东西时,它一直在告诉我不能从一个较低的班级隐式地创建一个较高的班级。考虑到我看到的所有动物示例的继承,我会认为这就是为什么存在继承的原因,但我希望有人可以澄清我。
另外,我确定我可以打电话SteelBar = CreateBar();
,但我在这里做了很长的路。