码迷,mamicode.com
首页 > Windows程序 > 详细

C# 多态(通俗理解)

时间:2015-05-21 12:12:07      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

这里随便说说多态,看了上面继承再看看这篇。

多态:通过继承实现的不同对象调用相同的方法,表现出不同的行为。

之前的前台调用代码如下: 

 1 namespace ConsoleApplication7
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Dog dog = new Dog();
 8             dog.Name = "骨头";
 9             dog.Show();
10             //输出结果// 小狗喜欢吃:骨头
11 
12 
13             Cat cat = new Cat();
14             cat.Name = "";
15             cat.Show();
16             //输出结果// 小猫喜欢吃:鱼
17 
18             Mouse mouse = new Mouse();
19             mouse.Name ="大米";
20             mouse.Show();
21             //输出结果// 老鼠喜欢吃:鱼
22 
23             Panda panda = new Panda();
24             panda.Name = "竹子";
25             panda.Show();
26             //输出结果// 熊猫喜欢吃:鱼
27 
28             Console.ReadKey();
29 
30         }
31     }
32 }

如你所见,每个动物类都是一个对象

狗的对象:dog

猫的对象:cat

老鼠的对象:mouse

熊猫的对象:panda

要让这些动物实现输出show()方法,你就要声明每一个对象,而上面说了,多态是:不同对象调用相同的方法,表现出不同的行为。

而且各种动物类都继承了Animal类,于是代码变成这样:

 1 namespace ConsoleApplication7
 2 {
 3     public class Animal
 4     {
 5         protected string name;
 6         public string Name
 7         {
 8             get { return name; }
 9             set { name = "新鲜的" + value; }
10         }
11         public virtual void Show()
12         {
13             Console.WriteLine("我是各种动物的父类");
14         }
15     }
16 
17     public class Cat : Animal
18     {
19         public override void Show()
20         {
21             Console.WriteLine("小猫喜欢吃:" + name);
22         }
23     }
24 
25     public class Dog : Animal
26     {
27         public override void Show()
28         {
29             Console.WriteLine("小猫喜欢吃:" + name);
30         }
31     }
32 
33     public class Mouse : Animal
34     {
35         public override void Show()
36         {
37             Console.WriteLine("老鼠喜欢吃:" + name);
38         }
39     }
40 
41     public class Panda : Animal
42     {
43         public override void Show()
44         {
45             Console.WriteLine("熊猫喜欢吃:" + name);
46         }
47     }
48 
49 }

前台代码:

 1 namespace ConsoleApplication7
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7 
 8             Animal animal;
 9             animal = new Dog();
10             animal.Name = "骨头";
11             animal.Show();
12 
13             animal = new Cat();
14             animal.Name = "";
15             animal.Show();
16 
17             animal = new Mouse();
18             animal.Name = "大米";
19             animal.Show();
20 
21             animal = new Panda();
22             animal.Name = "熊猫";
23             animal.Show();
24 
25             Console.ReadKey();
26 
27         }
28     }
29 }

结果:

小狗喜欢吃:新鲜的骨头

小猫喜欢吃:新鲜的鱼

老鼠喜欢吃:新鲜的大米

熊猫喜欢吃:新鲜的竹子

animal对象被赋值不同的实例,但是animal只调用Show()方法就得到不同的结果。

C# 多态(通俗理解)

标签:

原文地址:http://www.cnblogs.com/hamburger/p/4519192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!