C#-关键字使用虚拟+重写与新建在基类型中声明方法之间有什么区别“virtual“然后使用override关键字,而不是简单地使用new“在子类型中声明匹配方法时使用关键字?
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
public class Foo{ public bool DoSomething() { return false; }}public class Bar : Foo{ public new bool DoSomething() { return true; }}public class Test{ public static void Main () { Foo test = new Bar (); Console.WriteLine (test.DoSomething ()); }}
此打印为false,如果使用覆盖,则会打印true。
汪汪一只猫
TA贡献1898条经验 获得超8个赞
public class Foo{ public /*virtual*/ bool DoSomething() { return false; }}public class Bar : Foo{ public /*override or new*/ bool DoSomething() { return true; }}
Foo a = new Bar();a.DoSomething();
Bar
Foo
virtual
/override
new
- 3 回答
- 0 关注
- 508 浏览
添加回答
举报
0/150
提交
取消