看了上篇的 《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 Mouse
18 {
19 private string name;
20 public string Name
21 {
22 get { return name; }
23 set { name = "新鮮的" + value; }
24 }
25 public void Show()
26 {
27 Console.WriteLine("老鼠喜歡吃:" + name);
28 }
29 }
30
31 public class Panda
32 {
33 private string name;
34 public string Name
35 {
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 : Animal
12 {
13 public void Show()
14 {
15 Console.WriteLine("小貓喜歡吃:" + name);
16 }
17 }
18
19 public class Mouse : Animal
20 {
21 public void Show()
22 {
23 Console.WriteLine("老鼠喜歡吃:" + name);
24 }
25 }
26
27 public class Panda : Animal
28 {
29 public void Show()
30 {
31 Console.WriteLine("熊貓喜歡吃:" + name);
32 }
33 }
34
35 }
前台代碼不變,看看結果:

這就體現了復用性,重復的地方只要寫一次。