C#的虚拟函数

虚拟函数主要特征,就是该函数有virtual修饰符,用于它们可以在派生类中被重写。 例如,此方法可被任何继承它的类重写。

using System;

namespace VirtualMethodTest
{
    class A
    {
        public virtual void fun() // 注意virtual,表明这是一个虚拟函数
        {
            Console.WriteLine("A");
        }
    }
    class B : A // 注意B是从A类继承,所以A是父类,B是子类
    {
        public override void fun() // 注意override ,表明重新实现了虚函数
        {
            Console.WriteLine("B");
        }
    }
    class C : B // 注意C是从A类继承,所以B是父类,C是子类
    {

    }
    class D : A // 注意B是从A类继承,所以A是父类,D是子类
    {
        public new void fun() // 注意new ,表明覆盖父类里的同名类,而不是重新实现
        {
            Console.WriteLine("D");
        }
    }
    class program
    {
        static void Main()
        {

            A a = new A();
            B b = new B();
            C c = new C();
            D d = new D();
            a.fun();
            b.fun();
            c.fun();
            d.fun();
            D d1 = new D();
            d1.fun();
            Console.ReadLine();
            //运行结果A B B D D;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值