zoukankan      html  css  js  c++  java
  • 浅谈C# 多态的魅力(虚方法,抽象,接口实现)(转)

    我们都知道,喜鹊(Magpie)、老鹰(Eagle)、企鹅(Penguin)都是属于鸟类,我们可以根据这三者的共有特性提取出鸟类(Bird)做为父类,喜鹊喜欢吃虫子,老鹰喜欢吃肉,企鹅喜欢吃鱼。

    创建基类Bird如下,添加一个虚方法Eat():

    /// <summary>
        /// 鸟类:父类
        /// </summary>
        public class Bird
        {
            /// <summary>
            /// 吃:虚方法
            /// </summary>
            public virtual void Eat()
            {
                Console.WriteLine("我是一只小小鸟,我喜欢吃虫子~");
            }
        }

    创建子类Magpie如下,继承父类Bird,重写父类Bird中的虚方法Eat():

     /// <summary>
        /// 喜鹊:子类
        /// </summary>
        public  class Magpie:Bird
        {
            /// <summary>
            /// 重写父类中Eat方法
            /// </summary>
            public override void Eat()
            {
                Console.WriteLine("我是一只喜鹊,我喜欢吃虫子~");
            }
        } 

    建一个子类Eagle如下,继承父类Bird,重写父类Bird中的虚方法Eat():

     /// <summary>
        /// 企鹅:子类
        /// </summary>
        public  class Penguin:Bird
        {
            /// <summary>
            /// 重写父类中Eat方法
            /// </summary>
            public override void Eat()
            {
                Console.WriteLine("我是一只小企鹅,我喜欢吃鱼~");
            }
        }

    到此,一个基类,三个子类已经创建完毕,接下来我们在主函数中来看下多态是怎样体现的。

    static void Main(string[] args)
        {
            //创建一个Bird基类数组,添加基类Bird对象,Magpie对象,Eagle对象,Penguin对象
            Bird[] birds = { 
                           new Bird(),
                           new Magpie(),
                           new Eagle(),
                           new Penguin()
            };
            //遍历一下birds数组
            foreach (Bird bird in birds)
            {
                bird.Eat();
            }
            Console.ReadKey();
        }
  • 相关阅读:
    MySQL data type
    Backup &recovery备份和还原
    Spring AOP capabilities and goals
    CDI Features
    人力资源管理系统测试功能(最后阶段)
    部分代码片段—人力资源管理系统(第二阶段)
    人力资源管理系统需求分析报告及系统架构图
    MySQL:Download Connector/Python
    The History of spring
    认识LDAP协议
  • 原文地址:https://www.cnblogs.com/qq4004229/p/3135787.html
Copyright © 2011-2022 走看看