不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 知識大全 > 知識百科 > 公共基礎(chǔ)知識 > .net重寫和重載的區(qū)別

.net重寫和重載的區(qū)別

時間: 映芳735 分享

.net重寫和重載的區(qū)別

  接觸過編程代碼的人都知道重載和重寫,但是很多人來說,總是不能很好的區(qū)別它們,其實(shí)區(qū)別它們很容易,只要你常常練習(xí)編代碼,不久就能從本質(zhì)上將他們區(qū)分開。

  小編給你舉一下代碼例子,可以通過代碼了解一下

  OverrideNew.cs

  namespace NET.MST.Third.OverrideNew

  {

  public class OverrideNew

  {

  static void Main(string[] args)

  {

  //測試重寫和隱藏的功能

  OverrideBase b = new OverrideBase();

  NewBase nb = new NewBase();

  Console.WriteLine(ob.ToString() + ":" + ob.GetString());

  Console.WriteLine(nb.ToString() + ":" + nb.GetString());

  Console.WriteLine("\r\n");

  //重寫和隱藏的區(qū)別

  Base bb = ob as Base;

  Base nbb = nb as Base;

  Console.WriteLine(obb.ToString() + ":" + obb.GetString());

  Console.WriteLine(nbb.ToString() + ":" + nbb.GetString());

  Console.Read();

  }

  }

  //基類

  class Base

  {

  public virtual string GetString()

  {

  return "我是基類";

  }

  }

  //重寫

  class OverrideBase : Base

  {

  public override string GetString()

  {

  return "我重寫了基類";

  }

  }

  //隱藏

  class NewBase : Base

  {

  public new virtual string GetString()

  {

  return "我隱藏了基類";

  }

  }

  }

  }

  //重寫

  class OverrideBase : Base

  {

  public override string GetString()

  {

  return "我重寫了基類";

  }

  }

  //隱藏

  class NewBase : Base

  {

  public new virtual string GetString()

  {

  return "我隱藏了基類";

  }

  }

  }

  看完了上面的代碼,是不是能理解重載和重寫了呢,下面小編再給你說明一下重載和重寫的定義。

  重載

  同一個作用域內(nèi)發(fā)生(比如一個類里面),定義一系列同名方法,但是方法的參數(shù)列表不同。這樣才能通過傳遞不同的參數(shù)來決定到底調(diào)用哪一個。而返回值類型不同是不能構(gòu)成重載的。

  重寫

  繼承時發(fā)生,在子類中重新定義父類中的方法,子類中的方法和父類的方法是一樣的。

530109