zoukankan      html  css  js  c++  java
  • C#多态

    C#多态本质重载,一个方法实现不同的功能,分为静态多态和动态多态

    一、静态多态(包括对方法重装和对操作符重载)

    1.1 对方法重载

    声明:

    private static void SayHello()
            {
                Console.WriteLine("hello!");
            }
    
            private static void SayHello(string name)
            {
                Console.WriteLine(name + " say hello!");
            }

    调用:

    SayHello();
    SayHello("mr.tian");

    1.2 对运算符重载

    声明:

    class Complex
            {
                public Complex()
                {
                    
                }
                public Complex(int i)
                {
                    Num = i;
                }
                public int Num { get; set; }
    
                public static Complex operator +(Complex com1, Complex com2)
                {
                    Complex result = new Complex();
                    result.Num = com1.Num + com2.Num;
                    return result;
                }
            }

    调用:

    Complex test1 = new Complex(5);
    Complex test2 = new Complex(10);
    Complex test3 = test1 + test2;
    Console.WriteLine(test3.Num);
    二、动态多态,通过override来重载

    声明:

    class Human
            {
                public virtual void CleanRoom()
                {
                    Console.WriteLine("Human clean room");
                }
            }
    
            class Man :Human
            {
                public override void CleanRoom()
                {
                    Console.WriteLine("Man clean room");
                }
            }
    
            class Woman : Human
            {
                public override void CleanRoom()
                {
                    Console.WriteLine("Woman clean room");
                }
            }

    使用:

    Human human1 = new Man();
                Human human2 = new Woman();
                human1.CleanRoom();
                human2.CleanRoom();

    结果:

    身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
  • 相关阅读:
    C#用Infragistics 导入导出Excel
    C#基础---Attribute(标签) 和 reflect(反射) 应用二
    C#基础系列:反射笔记
    反射基础
    NPOI之Excel——合并单元格、设置样式、输入公式
    NPOI对Excel的操作(Sheet转DataTable、List<T>)
    【SVN版本回退】
    撤销修改
    iOS
    ios 排序汇总
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/7025630.html
Copyright © 2011-2022 走看看