zoukankan      html  css  js  c++  java
  • Override

    Override

    一、简介

    override意思是重写。它是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同,用于拓展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现,提供从基类继承的成员的新实现,而通过override声明重写的方法称为基方法。

    二、重写抽象方法

      class Program
        {
            public abstract class A
            {
                public abstract void Func();
            }
    
            public class B : A
            {
                public override void Func()
                {
                    Console.WriteLine("B");
                }
            }
    
            static void Main(string[] args)
            {
                B b = new B();
            }
    
    
        }

    三、重写虚方法

        class Program
        {
            public class A
            {
                public virtual void Func()
                {
                    Console.WriteLine("A");
                }
            }
    
            public class B : A
            {
                public override void Func()
                {
                    Console.WriteLine("B");
                }
            }
            static void Main(string[] args)
            {
                B b = new B();
                b.Func();
            }
    
           
    
        }

    四、总结

    1.重写基方法必须具有与override方法相同的签名。
    2.override声明不能更改virtual方法的可访问性,且override方法与virtual方法必须具有相同级别访问修饰符。
    3.不能用new、static、virtual修饰符修饰override方法。
    4.重写属性声明必须指定与继承的属性完全相同的访问修饰符、类型和名称。
    5.重写的属性必须是virtual、abstract或override。
    6.不能重写非虚方法或静态方法。
    7.父类中有abstract,那么子类同名方法必定有override;若父类中有virtual方法,子类同名方法不一定是override。
    8.override必定有父子类关系。


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    Pycharm
    Python
    navicat连接MySQL8.0出现2059错误
    MySQL Community Server 8.0.11下载与安装配置
    pip升级以及导入模块
    pycharm安装
    python环境安装
    js 超级玛丽(未完成)
    js 点名
    js 获取鼠标位置坐标
  • 原文地址:https://www.cnblogs.com/wml-it/p/14798649.html
Copyright © 2011-2022 走看看