• C#中多态


    我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态.
    1: OverRide 实现多态

     1 public class Animal
     2     {
     3         public virtual void Eat()
     4         {
     5             Console.WriteLine("Animal eat");
     6         }
     7     }
     8     public class Dog : Animal
     9     {
    10         public override void Eat()
    11         {
    12             Console.WriteLine("Dog eat");
    13         }
    14     }
    15     public class WolfDog : Dog
    16     {
    17         public override void Eat()
    18         {
    19             Console.WriteLine("WolfDog eat");
    20         }
    21     }
    22     class Tester
    23     {
    24         static void Main(string[] args)
    25         {
    26             Animal[] animals = new Animal[3];
    27             animals[0] = new Animal();
    28             animals[1] = new Dog();
    29             animals[2] = new WolfDog();
    30             for (int i = 0; i < 3; i++)
    31             {
    32                 animals[i].Eat();
    33             }
    34         }
    35 }

    运行结果为:
    Animal eat...
    Dog eat...
    WolfDog eat...
    2:New虚方法实现多态

     1 public class Animal
     2     {
     3         public virtual void Eat()
     4         {
     5             Console.WriteLine("Animal eat");
     6         }
     7     }
     8     public class Cat : Animal
     9     {
    10         public new void Eat()
    11         {
    12             Console.WriteLine("Cat eat");
    13         }
    14     }
    15     class Tester
    16     {
    17         static void Main(string[] args)
    18 
    19         {
    20             Animal a = new Animal();
    21             a.Eat();
    22             Animal ac = new Cat();
    23             ac.Eat();
    24             Cat c = new Cat();
    25             c.Eat();
    26         }
    27     }

    输出结果如下
    Animal eat...
    Animal eat...
    Cat eat...

  • 相关阅读:
    NetCore与 NET Framework 不同的地方
    vue学习一
    C#基础
    css基础学习
    多线程相关教程
    IIS 配置网站
    C#控制台项目更改运行文件
    实现一个自适应网页用到的css知识
    如何让手机一直保持流畅
    TCP/IP网路协议复习
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/3822308.html
Copyright © 2020-2023  润新知