new、override、virtual用法区别
来源:互联网 发布:c语言编程判断素数 编辑:程序博客网 时间:2024/06/01 12:29
new和override的相同点和区别:
相同点:都可以对基类成员进行隐藏,都可以用base调用基类的成员
不同点:
1.用override重写基类的方法,要求与基类必须有完全相同的访问修饰符、返回值类型和方法名称,参数异常。new不用。
2.用override重写基类的方法要求基类的方法必须是虚拟的,抽象的或者重写的(virtual,abstract,override),而new不需要。
3.继承后用一个基类的对象调用基类的virtual方法时,override重写的子类方法会被访问,而new重写的子类方法不好被访问(只访问基类的virtual方法)
4.new作为运算符时候,创建对象、调用构造函数。new用于约束时,用于在泛型声明中,约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
举例如下:
1.
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields()
{
Console.WriteLine("虚方法");
}
}
class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public new void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
则: B b1 = new B();//输出 : 虚方法
2.
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields()
{
Console.WriteLine("虚方法");
}
}
class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
则: B b1 = new B();//输出 : x=1,y=0
- new、override、virtual用法区别
- C# new virtual override 区别
- C# new virtual override 之间的区别
- C# virtual override abstract new区别
- C# new virtual和override 区别
- C# new virtual和override 区别
- C# 中virtual,override,new 的区别与用法(转载)
- c#中多态,virtual,override用法,区别解析
- new VS virtual+override
- Virtual,New,Override
- Virtual、override和new
- abstract、virtual、override、new
- virtual override new 详解
- C#virtual override new
- New Virtual Override
- C#中new, override, virtual的具体用法
- c#关键词 virtual、override、new、abstract、sealed的用法
- C#中new, override, virtual的具体用法
- 堆和栈的区别 包含样例 (被转无数次的文章)
- 在 Windows XP 的 Apache 2.2.9 环境下安装 TWiki 4.2.2
- UIlable UITextField的用法
- asp.net 弹出层编辑
- zoj 3630(tajan)求强连通分量的个数
- new、override、virtual用法区别
- POJ 1837(Dp水题)
- IE6下背景图片透明解决
- 关于 LIBGHTTP 收集的资料
- 我要学ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model
- Hive限制
- 如何让Android UI使用更快更高效
- vs2008打包程序需要.net3.5支持问题的解决方案
- 酒的真正内涵