A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴承烨 中级黑马   /  2013-6-18 17:36  /  947 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

真鸭子 木鸭子 假鸭子 都能叫  多态的方法怎么写

3 个回复

倒序浏览
  1. public interface ISay
  2.         {
  3.                 void Say();
  4.         }
  5.                
  6.         public class RealDuck : ISay
  7.         {
  8.                 public void Say()
  9.                 {
  10.                         Console.WriteLine("我是真鸭子");
  11.                 }
  12.         }
  13.        
  14.         public class WoodDuck : ISay
  15.         {
  16.                 public void Say()
  17.                 {
  18.                         Console.WriteLine("我是木鸭子");
  19.                 }
  20.         }
  21.        
  22.         public class FakeDuck : ISay
  23.         {
  24.                 public void Say()
  25.                 {
  26.                         Console.WriteLine("我是假鸭子");
  27.                 }
  28.         }
  29.        
  30.         public class TestDuck
  31.         {
  32.                 public static void Test()
  33.                 {
  34.                         //接口多态
  35.                         List<ISay> ducks = new List<ISay>{
  36.                                 new RealDuck(), new FakeDuck(), new WoodDuck()
  37.                         };
  38.                        
  39.                         foreach (var duck in ducks)
  40.                         {
  41.                                 duck.Say();
  42.                         }
  43.                        
  44.                         Console.WriteLine("---------------------------");
  45.                         List<Duck> ducks2 = new List<Duck>{
  46.                                 new RealDuck2(), new FakeDuck2(), new WoodDuck2()
  47.                         };
  48.                        
  49.                         foreach (var duck in ducks2)
  50.                         {
  51.                                 duck.Say();
  52.                         }
  53.                        
  54.                 }
  55.         }
  56.        
  57.         public class Duck
  58.         {
  59.                 public virtual void Say(){}
  60.         }
  61.        
  62.         public class RealDuck2 : Duck
  63.         {
  64.                 public override void Say()
  65.                 {
  66.                         Console.WriteLine("我是RealDuck2");
  67.                 }
  68.         }
  69.        
  70.         public class WoodDuck2 : Duck
  71.         {
  72.                 public override void Say()
  73.                 {
  74.                         Console.WriteLine("我是WoodDuck2");
  75.                 }
  76.         }
  77.        
  78.         public class FakeDuck2 : Duck
  79.         {
  80.                 public override void Say()
  81.                 {
  82.                         Console.WriteLine("我是FakeDuck2");
  83.                 }
  84.         }
复制代码
回复 使用道具 举报
class Program
    {
        static void Main(string[] args)
        {
            YaZi yaZi;
            ZhenYaZi zYaZi = new ZhenYaZi();
            JiaYaZi jYaZi = new JiaYaZi();
            MuYaZi mYaZi = new MuYaZi();
            yaZi = zYaZi;
            yaZi.Jiao();
            yaZi = jYaZi;
            yaZi.Jiao();
            yaZi = mYaZi;
            yaZi.Jiao();
            Console.ReadKey();
        }
    }
    class YaZi
    {
        public virtual void Jiao()
        {
            Console.WriteLine("我是鸭子");
        }
    }
    class ZhenYaZi : YaZi
    {
        public override void Jiao()
        {
            Console.WriteLine("我是真鸭子");
        }
    }
    class JiaYaZi : YaZi
    {
        public override void Jiao()
        {
            Console.WriteLine("我是假鸭子");
        }
    }
    class MuYaZi : YaZi
    {
        public override void Jiao()
        {
            Console.WriteLine("我是木鸭子");
        }

    }

这个就是多态噢 。。。。

回复 使用道具 举报
谢谢参与
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马