相关疑难解决方法(0)

为什么这个多态C#代码会打印它的作用?

我最近得到了以下代码作为一种帮助理解PolymorphismInheritance在OOP - C#中的谜题.

// No compiling!
public class A
{
     public virtual string GetName()
     {
          return "A";
     }
 }

 public class B:A
 {
     public override string GetName()
     {
         return "B";
     }
 }

 public class C:B
 {
     public new string GetName()
     {
         return "C";
     }
 }

 void Main()
 {
     A instance = new C();
     Console.WriteLine(instance.GetName());
 }
 // No compiling!
Run Code Online (Sandbox Code Playgroud)

现在,在与提出拼图的其他开发者进行了长时间的长时间聊天后,我知道输出是什么,但我不会为你破坏它.我真正遇到的唯一问题是我们如何得到输出,代码如何逐步通过,继承什么等等.

我认为C会返回,因为它似乎是定义的类.然后我通过我的脑袋了解是否B会因为C继承而返回B- 但B也继承A(这是我困惑的地方!).


题:

任何人都可以解释多态性和继承如何在检索输出中发挥作用,最终显示在屏幕上?

.net c# oop polymorphism inheritance

68
推荐指数
2
解决办法
6931
查看次数

标签 统计

.net ×1

c# ×1

inheritance ×1

oop ×1

polymorphism ×1