zoukankan      html  css  js  c++  java
  • 重载、覆写

    重载:(2必须1可以)           方法名必须相同 
                                               参数列表必须不相同
                                               返回类型可以不相同

    覆写:(3相同)                     方法名必须相同
                                              参数列表必须相同
                                              返回类型必须相同

    若要在派生类中使用基类的方法:则使用base关键字,例:base.方法名()
     
    virtual                                      virtual
    override(覆写)                      new(不覆写)

    abstract抽象方法:1、必须是被派生类覆写的方法
                                    2、可以看成是没有实现体的方法
                                    3、若类中包含抽象方法,则类必须定义为抽象类,不论是否还包含其他方法
    例:
     class classA
            {
                
    public virtual void Func()
                {
                    Console.WriteLine(
    "FuncA()");
                }
            }
            
    class classB : classA
            {
                
    public new void Func() //new表示不覆写,调用类A中的方法
                {
                    Console.WriteLine(
    "FuncB()");
                }

                
    //public override void Func() //override表示覆写,调用类B中的方法
                
    //{
                
    //    Console.WriteLine("FuncB()");
                
    //}
            }

            
    static void Main()
            {
                classA aa 
    = new classA();
                aa.Func();
    //FuncA()
                classB bb = new classB();
                bb.Func();
    //FuncB()

                classA cc 
    = new classB();
                cc.Func();
    //FuncA();
            }

    class classA
            {
                
    public virtual void Func()
                {
                    Console.WriteLine(
    "FuncA()");
                }
            }
            
    class classB : classA
            {
                
    //public new void Func() //new表示不覆写,调用类A中的方法
                
    //{
                
    //    Console.WriteLine("FuncB()");
                
    //}

                
    public override void Func() //override表示覆写,调用类B中的方法
                {
                    Console.WriteLine(
    "FuncB()");
                }
            }

            
    static void Main()
            {
                classA aa 
    = new classA();
                aa.Func();
    //FuncA()
                classB bb = new classB();
                bb.Func();
    //FuncB()

                classA cc 
    = new classB();
                cc.Func();
    //FuncB();
            }
  • 相关阅读:
    PHP腾讯地图地图接口调用提示{ "status": 110, "message": "请求来源未被授权,此次请求无来源信息" }
    PHP带参数匿名函数
    微信小程序实现图片预加载(图片延迟加载)
    快速排序
    《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
    《Linux命令行与shell脚本编程大全》第十七章 创建函数
    makefile中伪目标的理解
    《Linux命令行与shell脚本编程大全》第十六章 控制脚本
    《Linux命令行与shell脚本编程大全》第十五章 呈现数据
    《Linux命令行与shell脚本编程大全》第十四章 处理用户输入
  • 原文地址:https://www.cnblogs.com/perfect/p/555094.html
Copyright © 2011-2022 走看看