override 与new 的区别
来源:互联网 发布:微博股票组合数据说明 编辑:程序博客网 时间:2024/05/22 00:26
public class baseClass
{
public baseClass()
{
Method1();
}
public virtual void Method1()
{
Console.WriteLine("Method1 in baseClass");
}
}
public class derivedClass : baseClass
{
private int value;
public derivedClass()
{
value = 2;
}
public override void Method1()
{
if (value == 2)
Console.WriteLine("value==2");
else
Console.WriteLine("value!=2");
}
}
{
public baseClass()
{
Method1();
}
public virtual void Method1()
{
Console.WriteLine("Method1 in baseClass");
}
}
public class derivedClass : baseClass
{
private int value;
public derivedClass()
{
value = 2;
}
public override void Method1()
{
if (value == 2)
Console.WriteLine("value==2");
else
Console.WriteLine("value!=2");
}
}
问题:
1、初始化一实例:baseClass tempClass=new derivedClass()之后,会输出什么结果?
2、把derivedClass类中的override换成 new之后,又会输出什么结果?
正确答案:
1、value!=2
2、Method1 in baseClass
MSDN上说:new 关键字在用作修饰符时,可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成员的派生版本将替换基类版本。也就是说,在用new关键字时,派生类与基类的这两个相同签名的方法已经没有任何联系了。
而用override时,它与new的区别主要是,overrid是重写了基类的方法,new是隐藏、覆盖了基类的方法。。
- override 与new 的区别
- New与Override的区别
- override与new的区别
- new与override的区别
- new与override区别
- C# override与new的区别
- .net中new与override的区别
- new override的区别
- C#中override重写与new隐藏的区别,以及C#与Java的Override区别
- C#中override重写与new隐藏的区别,以及C#与Java的override区别
- C#中override重写与new隐藏的区别,以及C#与Java的Override区别
- override 和 new 的区别
- new和override的区别?
- new和override的区别
- override和new的区别
- new和override的区别
- new 和 override 的区别
- C# override,new 的区别
- java基础学习(3)
- java基础学习(3)
- CSDN的Blog有进步,但还是存在不足
- 写在地震次日——愿:人民平安,祖国强盛,社会法治,政治民主,政府清廉高效。
- 情牵灾民
- override 与new 的区别
- 高级汇编语言技术
- 调整ACE日志时间输出格式
- ASP.NET页面打印技术的总结
- 判断是否服务器端提交
- SQL注入过滤
- 将GUI和游戏引擎进行结合
- 用Java开发Linux GUI应用
- 使用J2SE1.4开发CORBA程序(一)