zoukankan      html  css  js  c++  java
  • 多态实例

    C#多态实例

    1.什么是多态?

    多态性是允许你将父对象设置成为一个更多的他的子对象相等的技术。

    赋值后,父对象可以根据当前赋值给他的子对象的特性以不同的方式运作。

    用扫地阿姨都能听懂的话说就是:  允许子类类型的指针赋值给父类类型的

    指针。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace 多态实例
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Console.WriteLine("老板讲话:大家肃静,现在刚好08:00,我们开始开会,请各个部门领导发言:");
    14             Company[] CArray = new Company[3];
    15             CArray[0] = new Manager();
    16             CArray[0].Say("张经理");
    17             CArray[0].Foo();
    18 
    19             CArray[1] = new Coder();
    20             CArray[1].Say("李程序员");
    21             CArray[1].Foo();
    22 
    23             CArray[2] = new Accountant();
    24             CArray[2].Say("钱会计");
    25             CArray[2].Foo();
    26 
    27             Console.ReadKey();
    28         }
    29 
    30     }
    31     //定义个公司类
    32     class Company
    33     {
    34         string Name = "";
    35         public virtual void Say(string name)
    36         {
    37             this.Name = name;
    38         }
    39         public virtual void Foo()
    40         {
    41             Console.WriteLine(Name+"根据公司条理,不同的岗位的工作人员,干好岗位的本质工作");
    42         }
    43     }
    44     //定义经理类
    45     class Manager : Company
    46     {
    47         string Name = "";
    48         public override void Say(string name)
    49         {
    50             //base.Say(name);
    51             this.Name = name;
    52         }
    53         public override void Foo()
    54         {
    55             Console.WriteLine(Name+"现在开早会,给大家分配工作");
    56         }
    57 
    58     }
    59 
    60     //定义程序员类
    61     class Coder : Company
    62     {
    63         string Name = "";
    64         public override  void Say(string name)
    65         {
    66             this.Name = name;
    67         }
    68         public override void Foo()
    69         {
    70             Console.WriteLine(Name + "根据工作任务安排,我现在开始工作编程");
    71         }
    72     }
    73 
    74     //定义财会类
    75     class Accountant : Company
    76     {
    77         string Name = "";
    78         public override void Say(string name)
    79         {
    80             this.Name = name; 
    81         }
    82         public override void Foo()
    83         {
    84             Console.WriteLine(Name+"今天是发工资的日子,待会我给大家发工资!");
    85         }
    86 
    87     }
    88 
    89 }
    View Code

     运行结果如图:

     

  • 相关阅读:
    IIS配置Asp.net时,出现“未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0”
    如何ping测有端口的网站
    职场情况--小领导人品不好,大领导很欣赏我,该不该将小领导的搓事告诉大领导?
    https://www.cnblogs.com/netoxi/p/7258895.html
    java基本数据类型
    不用犹豫什么时候声明实例变量或者拒不变量
    java多线程
    架构考虑
    多线程一共就俩问题:1.线程安全(访问共享数据) 2.线程通信(wait(),notify())
    csrf攻击
  • 原文地址:https://www.cnblogs.com/whp0224/p/9478475.html
Copyright © 2011-2022 走看看