public class A {
public string a1()
}
public class B:A {
public string a1()
}
这样会出编译错,还是不出?如果不出,会怎么样?

解决方案 »

  1.   

    不会出错,但会有一个提示说明需要明确的使用new关键字来声明,如果没有new系统默认按有new处理,相当于如下:
    public class A
    {
    public string a1() { return "1"; }
    }
    public class B : A
    {
    public new string a1() { return "2"; }
    }
    警告的内容大致如下:
    警告 1 “B.a1()”隐藏了继承的成员“A.a1()”。如果是有意隐藏,请使用关键字 new