C#学习——虚方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 虚方法
{
    //新建一个class1类
    class class1
    {
//默认的方法被指定为私有的,只能在当前类中进行访问 private
//需要在其他类中访问,就需要将其指定为public:访问权限最高,只要在项目内部都可以进行访问
//virtual关键字必须位于void前
public virtual void virtualMehtod()//因为虚方法能够在派生类中进行重写

        {
            Console.WriteLine("这是一个虚方法");
        }
        public void nonVirtualMehtod()
        {
            Console.WriteLine( "这是一个非虚方法");
        }
    }
    class class2:class1//将class2继承于class1
    {
        //重写一下虚方法
        public override void virtualMehtod()
        {
            Console.WriteLine("这是一个新写的虚方法");
        }
        public new void nonVirtualMehtod()
        {
            Console.WriteLine("这是一个新的方法");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            class1 c1 = new class1();//将类进行实例化
            c1.virtualMehtod();
            c1.nonVirtualMehtod();
            class2 c2 = new class2();
            c2.virtualMehtod();
            c2.nonVirtualMehtod();
            c1 = c2;
            c1.virtualMehtod();
            c1.nonVirtualMehtod();
            Console.ReadKey();
        }
    }
}

结果显示
注:!!
(1)在继承类中重写方法时必须保证相同的签名。如上述程序中,原虚方法为:public virtual void virtualMehtod(),则新的类中必须保持

*public * override *void virtualMehtod() *

删除线上的关键字一致!!
(2)若不想让class2以后的类重写该虚方法,可加上关键字***sealed***,如:public override sealed void virtualMehtod()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值