附录A培训实习生-面向对象基础方法重载(3)

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 :

1       “Cat”方法没有采用“0”个参数的重载 E:大话设计模式学习BigDesignPatterns附录A培训实习生之面向对象基础动物运动会AnimalGamesForm1.cs       20     23     AnimalGames

原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载.

方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型.注意不是只有构造方法可以重载,普通方法也可以.

方法重载:方法名相同,但是参数类型或个数必须不同.

方法重载的好处是什么?

方法重载的好处就是在不改变原方法的基础上,新增功能(方法重载就是提供了函数可扩展的能力).

对Cat进行重载:

 1    class Cat
 2     {
 3         private string name = "";//声明Cat类的私有字符串变量name
 4 
 5         /// <summary>
 6         /// 定义Cat的构造方法,参数是输入一个字符串
 7         /// </summary>
 8         /// <param name="name"></param>
 9         public Cat(string name)
10         {
11             this.name = name;//将参数赋给私有变量name
12         }
13 
14         /// <summary>
15         /// 构造方法重载
16         /// </summary>
17         public Cat() 
18         {
19             this.name = "无名";
20         }
21 
22         public string Shout() 
23         {
24             return "我的名字叫" +name+ "";
25         }
26     }

调用的时候:

1 private void button1_Click(object sender, EventArgs e)
2         {
3             Cat cat = new Cat();//将cat实例化
4             //注意:Cat cat = new Cat();其实做了两件事,
5             //Cat cat;声明一个Cat的对象,对象名是cat
6             //cat = new Cat();将此cat对象实例化
7             MessageBox.Show(cat.Shout());
8         }
原文地址:https://www.cnblogs.com/liubeimeng/p/3913497.html