歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C#之重構與重載

1、先說重構,接著這篇的例子(http://www.linuxidc.com/Linux/2014-01/95950.htm),貓和狗類繼承父類動物,但是他們都有叫這個方法,除了叫的聲音不一樣之外,其余的都是一樣的,這樣造成了代碼的重復,如果要修改這個方法得同時修改這兩個子類,非常的麻煩。這時候重構就起了很重要的作用。它將重復的代碼提到父類,再加一個獲得叫的方法就可以了。具體實現如下:

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(),函數名相同,但是參數是不同的,一個有參數,一個沒有參數。這就是方法重載。

Copyright © Linux教程網 All Rights Reserved