黑马程序员技术交流社区
标题:
c#中的 虚方法!
[打印本页]
作者:
dugubaitian
时间:
2014-6-12 10:43
标题:
c#中的 虚方法!
本帖最后由 dugubaitian 于 2014-6-12 23:39 编辑
关于c#中的虚方法的应用!
作者:
师弟
时间:
2014-6-12 13:55
让子类重写,在调用方法的时候,就可以按实际new时的类型来调用相应的方法了。
作者:
许庭洲
时间:
2014-6-12 20:46
1. 当类中的方法声明前加上了virtual修饰符,称之为虚方法,反之为非虚;
2. 对于虚方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变;
3.举例子:
using System;
class A
{
public void F()
{
Console.WriteLine("A.F");
}
public virtual void G()
{
Console.WriteLine("A.G");
}
}
class B:A
{
new public void F()
{
Console.WriteLine("B.F"):
}
public override void G()
{
Console.WriteLine("B.G"):
}
}
class Test
{
B b = new B();
A a=b;
a.F();
b.F();
a.G();
b.G();
}
}
4. A类提供了两个方法:非虚的F和虚方法G。类B则提供了一个新的非虚的方法F,从而覆盖了继承的F;类B同时还重载了继承的方法G。
5. 输出结果:
A.F
B.F
B.G
B.G
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2