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();
            }
  • 相关阅读:
    java日期格式转换工具类
    关于IOS给我的启发
    (转载)小米手机给我的启发和思考
    ElasticDownload
    ShopMall
    CycleViewPager
    MaterialImageView
    ZrcListView
    superCleanMaster
    QuickNewsLibs
  • 原文地址:https://www.cnblogs.com/perfect/p/555094.html
Copyright © 2011-2022 走看看