嘿.我刚刚拿起C#来学习XNA的游戏编程,但我也有一些Java经验.
这是我的代码,实质上:
public class A
{
public Rectangle getRectangle()
{
return [some rectangle];
}
public bool collision(A other)
{
Rectangle rect1 = getRectangle();
Rectangle rect2 = other.getRectangle();
return rect1.Intersects(rect2);
}
}
public class B : A
{
public Rectangle getRectangle()
{
return [some other rectangle];
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样的事情时出现问题:
A a;
B b;
if(a.collision(b))
...
Run Code Online (Sandbox Code Playgroud)
据我所知,B的版本的get矩形实际上从未被调用过.我尝试了一个像这里建议的解决方案, 但我得到的消息基本上是"B.getRectangle()隐藏继承成员A.getRectangle().如果是这样的话,请使用new关键字."
我提前感谢任何帮助.我认为我过去的Java体验正在影响C#的不同之处.我想如果有人知道一个很好的链接可以解释C#和java之间的差异,或者只是C#在这方面的工作原理就足够了.
干杯.