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();
            }
  • 相关阅读:
    SQL Server 服务由于登录失败而无法启动
    一个项目涉及到的50个Sql语句
    sql server2008 数据库镜像的问题
    C# 根据枚举名(string)获得enum中的枚举值
    在不同版本的 IIS 上使用 ASP.NET MVC(转)
    sqlite 默认当前时间
    Nginx反向代理后防盗链设置
    JavaScript 图片加载
    nginx配置文件中的location中文详解
    程序设计的十个做与不做
  • 原文地址:https://www.cnblogs.com/perfect/p/555094.html
Copyright © 2011-2022 走看看