Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过c中的驱动类B对象访问基类A函数#_C#_Oop - Fatal编程技术网

C# 通过c中的驱动类B对象访问基类A函数#

C# 通过c中的驱动类B对象访问基类A函数#,c#,oop,C#,Oop,通过c中的派生类B对象访问基类A函数# 是否有任何方法可以通过B类对象访问一个类的函数(和)并获得输出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);

通过c中的派生类B对象访问基类A函数# 是否有任何方法可以通过B类对象访问一个类的函数(和)并获得输出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

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

A objectB = new B();
int result=objectB.Sum(7);
这将使用
A
的方法。这是唯一正确的,因为该方法是隐藏的,而不是重写的


您还将在
B
中得到一个方法
Sum
的编译器警告,您可能希望将其定义为
public new int Sum(int i)
表示隐藏是有意的。

选择要执行的
Sum
方法是有条件的还是
A
Sum
方法总是由
B
调用?你能告诉我如何强化我的oops概念吗?谢谢,除了练习和阅读有关它的信息。它将伴随着经验而来。毫不犹豫地学习基础知识。起初,你可能认为你已经知道这些事情,但你会在头脑中巩固基本概念,这将有助于你理解更复杂的概念。我可能会补充说,这个问题更多地与
C#
语言有关,而不是与OOP本身有关。