c# 重写基类方法时,Override 和 New 的区别
答案:1 悬赏:40 手机版
解决时间 2021-11-20 19:17
- 提问者网友:情歌越听越心酸
- 2021-11-20 08:21
c# 重写基类方法时,Override 和 New 的区别
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-11-20 08:38
override就是子类将父类的方法重新实现了一遍。
new就是说这个方法就是子类自己的,跟父类没有任何继承关系关系,仅仅是重名
public class A
{
public virtual string Function()
{
return "1";
}
}
public class B : A
{
public override string Function()
{
return "2";
}
}
public class C : A
{
public new string Function()
{
return "3";
}
}
public class JustForTest
{
public void DoTest()
{
B b = new B();
C c = new C();
Console.WriteLine(b.Function());
Console.WriteLine(c.Function());
Console.WriteLine((b as A).Function());//这两个就体现出来了,B还是调用自己,返回2
Console.WriteLine((c as A).Function());//C调用的是基类,返回0
}
}
new就是说这个方法就是子类自己的,跟父类没有任何继承关系关系,仅仅是重名
public class A
{
public virtual string Function()
{
return "1";
}
}
public class B : A
{
public override string Function()
{
return "2";
}
}
public class C : A
{
public new string Function()
{
return "3";
}
}
public class JustForTest
{
public void DoTest()
{
B b = new B();
C c = new C();
Console.WriteLine(b.Function());
Console.WriteLine(c.Function());
Console.WriteLine((b as A).Function());//这两个就体现出来了,B还是调用自己,返回2
Console.WriteLine((c as A).Function());//C调用的是基类,返回0
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯