经典指数          
原因
573
浏览数
0
收藏数
 

using System;
namespace Application
{
abstract class BaseClass
{
    public virtual void MethodA()
    {
    }
    public virtual void MethodB()
    {
    }
}
class Class1: BaseClass
{
    public void MethodA(string arg)
    {
    }
    public override void MethodB()
    {
    }
}
class Class2: Class1
{
    new public void MethodB()
    {
    }
}
class MainClass
{
    public static void Main(string[] args)
    {
        Class2 o = new Class2();
        o.MethodA();
    }
}
}

请问, o.MethodA 调用的是?
  • BaseClass.MethodA
  • Class2.MethodA
  • Class1.MethodA
  • 都不是

     举报   纠错  
 
切换
1 个答案
A 无论是class1还是class2都没有override/new MethodA(),所以调得是基类的virtual MethodA(); 另外题目代码过不了编译2333
 
切换
撰写答案
扫描后移动端查看本题