• 重载、覆写


    重载:(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();
            }
  • 相关阅读:
    ckeditor 3.0.1使用
    也谈QQ表情弹出框的制作
    百度的模态弹出窗口
    day03 set集合,文件操作,字符编码以及函数式编程
    写在开始之前
    day07 类的进阶,socket编程初识
    day06 面向对象编程
    day02 Python 的模块,运算,数据类型以及方法
    day04 装饰器 迭代器&生成器 Json & pickle 数据序列化 内置函数
    day08 多线程socket 编程,tcp粘包处理
  • 原文地址:https://www.cnblogs.com/perfect/p/555094.html
Copyright © 2020-2023  润新知