面向对象之多态

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象之多态
{
    class Program
    {
        static void Main(string[] args)
        {
            //真的鸭子呱呱叫,木头鸭子吱吱叫,橡皮鸭子唧唧叫
            RealDuck rd = new RealDuck();
            MuDuck md = new MuDuck();
            XpDuck xd = new XpDuck();
            RealDuck[] ducks = { rd, md, xd };
            for (int i = 0; i <ducks.Length; i++)
            {
                ducks[i].Sayhello();
            }
            Console.ReadLine();
        }
        public  class RealDuck
        {
            public virtual void Sayhello()  //注意修饰符 virtual 写在方法前,而不是类前
            { 
            Console.WriteLine("真的鸭子呱呱叫");
            }
        }
        public    class MuDuck:RealDuck
        {
            public override void Sayhello()
            {
                Console.WriteLine("木头鸭子吱吱叫");
            }
        }
        public  class XpDuck:RealDuck
        {
            public override  void Sayhello()
            {
                Console.WriteLine("橡皮鸭子唧唧叫");
            }
        
        }
    }
}
原文地址:https://www.cnblogs.com/kangshuai/p/4701974.html