virtual 和 override关键字

<span style="font-family:KaiTi_GB2312;font-size:24px;">一:字面理解:</span>
    virtual:adj.实质上的;(计算机)虚拟的,虚像的;
    override:vt.推翻,无视,覆盖,优先于;
    从字面上,我们就可以大概猜测出virtual和override关键字在c#中的作用了,光猜测还是不够,要有所落实。
二:概念比对:
    virtual关键字:
(在基类中使用)用于修饰方法,属性,索引器或事件声明,并且允许在派生类中重写这些对象。
    override关键字:
(在派生类中使用)要扩展或修改继承的方法,属性,索引器或事件的抽象实现或虚实现,必须使用override修饰符。
    对比:我们可以发现,它们两个关键字是相对使用的,方法重写必须要有override关键字,但基类需满足是抽象方法abstract或虚拟方法virtual就行。
三:备注比对:
    virtual:
        1)默认情况下,方法是非虚拟的,不能重写非虚拟方法。
        2)virtual修饰符不能与static,abstract,private,或override修饰符一起使用。
        3)除了声明和调用语法不同外,虚拟方法和抽象方法是一样的。(这里其实可以上网看看虚拟方法和抽象方法比较)
    override:
        1) 不能重写非虚方法或静态方法,重写的基类必须是virtual,abstract。
        2)override修饰符不能用new,static,virtual修饰符来修饰。
四:实例大战:
<span style="font-family:KaiTi_GB2312;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JIA
{
    class Program
    {
        static void Main(string[] args)
        {
            Person jia = new student();
            jia.Print();
        }
    }
    //创建基类Person
    abstract public class Person
    {
        public virtual void Print()
        {
            Console.WriteLine("你好");
        }
  
    }
    //创建派生类student
    public class student : Person
    {
        public  override void  Print()
        {
            Console.WriteLine("这是学生");
            Console.ReadLine();

        }

    }
}</span>

运行结果如下:


    
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值