C#之重构与重载
2014-01-27 17:29
351 查看
1、先说重构,接着上一篇的例子,猫和狗类继承父类动物,但是他们都有叫这个方法,除了叫的声音不一样之外,其余的都是一样的,这样造成了代码的重复,如果要修改这个方法得同时修改这两个子类,非常的麻烦。这时候重构就起了很重要的作用。它将重复的代码提到父类,再加一个获得叫的方法就可以了。具体实现如下:
2、重载一般特征:方法名是相同的,但是参数类型或个数必须要有所不同。举个例子:
就像上面的关于对名字name的初始化就用到重载,如上面的构造函数Dog(),函数名相同,但是参数是不同的,一个有参数,一个没有参数。这就是方法重载。
class Animal { //将共有代码提到父类 protected override void shout() { return getShoutSound(); } //获得声音的方法 protected virtual string getShoutSound() { return ""; } } //类猫继承动物 class Cat : Animal { Protected override string getShoutSound() { return "喵" } } //狗类继承动物 class Dog:Animal { Protected override string getShoutSound() { return "旺" } }
2、重载一般特征:方法名是相同的,但是参数类型或个数必须要有所不同。举个例子:
class Dog { private string name; public Dog() { name="黑贝"; } public Dog(string name) { this.name=name; } }
就像上面的关于对名字name的初始化就用到重载,如上面的构造函数Dog(),函数名相同,但是参数是不同的,一个有参数,一个没有参数。这就是方法重载。
相关文章推荐