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

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

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

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

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

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

方法重载的好处是什么?

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

对Cat进行重载:

    class Cat
{
private string name = "";//声明Cat类的私有字符串变量name /// <summary>
/// 定义Cat的构造方法,参数是输入一个字符串
/// </summary>
/// <param name="name"></param>
public Cat(string name)
{
this.name = name;//将参数赋给私有变量name
} /// <summary>
/// 构造方法重载
/// </summary>
public Cat()
{
this.name = "无名";
} public string Shout()
{
return "我的名字叫" +name+ "瞄";
}
}

调用的时候:

 private void button1_Click(object sender, EventArgs e)
{
Cat cat = new Cat();//将cat实例化
//注意:Cat cat = new Cat();其实做了两件事,
//Cat cat;声明一个Cat的对象,对象名是cat
//cat = new Cat();将此cat对象实例化
MessageBox.Show(cat.Shout());
}
上一篇:JavaScript中的方法重载


下一篇:python paramiko外部传参和内部调用命令的方法