你的位置:首页 > ASP.net教程

[ASP.net教程]C# 继承(通俗理解)


看了上篇的 《C# 属性(通俗理解)》之后继续往下。当让你实现很多动物都要实现这个方法然后输出结果,于是代码变成这样:

 1 namespace ConsoleApplication7 2 { 3   public class Dog 4   { 5     private string name; 6     public string Name 7     { 8       get { return name; } 9       set { name = "新鲜的"+value; }10     }11     public void Show()12     {13       Console.WriteLine("小狗喜欢吃:"+name);14     }15   }16 17   public class Mouse18   {19     private string name;20     public string Name21     {22       get { return name; }23       set { name = "新鲜的" + value; }24     }25     public void Show()26     {27       Console.WriteLine("老鼠喜欢吃:" + name);28     }29   }30 31   public class Panda32   {33     private string name;34     public string Name35     {36       get { return name; }37       set { name = "新鲜的" + value; }38     }39     public void Show()40     {41       Console.WriteLine("熊猫喜欢吃:" + name);42     }43   }44 45 46 }

调用前台的代码:

 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 }

如你所见,在各种动物类里面,每个动物类都有重复的name这个字段,也就是写了很多重复的代码,如何把重复的代码只要写一遍就好?于是用到了继承,什么是继承?继承是子类继承了父类,就能拥有父类的东西,比如:你爸有1000W,你继承了你爸的财产,你就可以使用这1000W了。

所以在这里把字段name写到父类里,我这里声明一个父类叫: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   }12 }

其它动物类都要去继承Animal类如下:

 1 namespace ConsoleApplication7 2 { 3   public class Cat : Animal 4   { 5     public void Show() 6     { 7       Console.WriteLine("小猫喜欢吃:" + name); 8     } 9   }10 11   public class Dog : Animal12   {13     public void Show()14     {15       Console.WriteLine("小猫喜欢吃:" + name);16     }17   }18 19   public class Mouse : Animal20   {21     public void Show()22     {23       Console.WriteLine("老鼠喜欢吃:" + name);24     }25   }26 27   public class Panda : Animal28   { 29     public void Show()30     {31       Console.WriteLine("熊猫喜欢吃:" + name);32     }33   }34 35 }

前台代码不变,看看结果:

这就体现了复用性,重复的地方只要写一次。