6

在c#中通过派生类B对象访问基类A函数有什么方法可以通过B类对象访问A类的函数(总和)并获得输出10。

Class A
{
    public int Sum(int i)
    {
        return i+3;
    }
}

Class B:A
{
     public int Sum(int i)
     {
          return i+4;
     }
}

B objectB=new B();

int result=objectB.Sum(7);

output:11
4

1 回答 1

8

声明一个A变量而不是B,同时仍然使用B的构造函数。

A objectB = new B();
int result=objectB.Sum(7);

这将使用A' 方法。这是正确的,因为该方法被隐藏而不是被覆盖。

您还将收到有关您的方法的编译器警告SumB并且您可能希望将其定义为public new int Sum(int i)表示隐藏是有意的。

于 2013-10-23T00:11:14.237 回答