小编Dev*_*ynS的帖子

C#在超类中调用override方法

嘿.我刚刚拿起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#在这方面的工作原理就足够了.

干杯.

c# xna c#-4.0

3
推荐指数
1
解决办法
1503
查看次数

标签 统计

c# ×1

c#-4.0 ×1

xna ×1