[黑马程序员]关于C#中的重载、override和new区别

来源:互联网 发布:mastercam编程学习 编辑:程序博客网 时间:2024/05/22 21:50

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

重载:重载指的是同一个类中有两个或多个名字相同但是参数不同的方法。

override:重写是指子类对父类中虚函数或抽象函数的“覆盖”。

new:指的是显式隐藏从基类继承的成员。

重载示例:

public void Method()       {           Console.WriteLine("hello world");}        public void Method(String str)   {            Console.WriteLine(str);    }

overrides示例:

class A{public virtual void Method(){Console.WriteLine("A");}}class B:A{public override void Method(){Console.WriteLine("B");}}

new隐藏函数示例:

class A{public virtual void Method(){Console.WriteLine("A");}}class B:A{public new void Method(){Console.WriteLine("B");}}

下面是override和隐藏函数容易混淆的一点:

对于下面代码输出结果不同

 A a = new B(); a.Method();

如果是重写(override)的话输出时B

如果是隐函数(new)输出为A

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------