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();
            }
  • 相关阅读:
    ASP.NET网页动态添加数据行
    动态生成自定义控件ascx如何给ascx传值
    读取txt文件将文本行组合成特定格式
    怎样对文本文件内的文本行排序
    动态变更Repeater控件HeaderTemplate列名
    减少代码冗余,封装你的程序
    在Repeater控件的OnItemDataBound获取数据源记录总数
    查看服务器系统资源(cpu,内容)利用率前几位的进程的方法
    Nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
    gerrit代码简单备份方案分享
  • 原文地址:https://www.cnblogs.com/perfect/p/555094.html
Copyright © 2011-2022 走看看