子类与父类,
来源:互联网 发布:js中的事件委托 编辑:程序博客网 时间:2024/05/17 08:11
public class A { public virtual void TestM1() { MessageBox.Show("A.TestM1"); } public virtual void TestM2() { MessageBox.Show("A.TestM2"); } } public class B: A { public override void TestM1() { MessageBox.Show("B.TestM1"); } public new void TestM2() { MessageBox.Show("B.TestM2"); } } public class App { A a = new B(); public void Test() { a.TestM1(); a.TestM2(); } }
很多时候子类override是为了基类使用时可以有灵活的构造配置,(多态)使用方总是基类对象所以如果子类有它自己的成员(包括new的成员函数在内)是无法被其调用的,那些不能为调用方提供调用的成员对于调用方来说是没有意义的,这也从一个方面回答了override不能被new代替的原因;
摘抄自:http://topic.csdn.net/u/20080918/18/a97d8845-c3a1-4aef-afb1-3b7172167b58.html?2038445491