首页 > 代码库 > 附录A培训实习生-面向对象基础(3):方法重载

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

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

1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.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;//将参数赋给私有变量name12         }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的对象,对象名是cat6             //cat = new Cat();将此cat对象实例化7             MessageBox.Show(cat.Shout());8         }