熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.NET中Class, Abstract and Interfa選擇[2]

2013-11-13 12:19:28  來源: .NET編程 

  要修復這個錯誤我們不得不在類Car和Train中實現方法Brake() 示范代碼如下

  public class Car : Vehicles
  {
   …
   public void Brake()
   {
    SystemConsoleWriteLine(Stop your car);
   }
  }
  public class Train : Vehicles
  {
   …
   public void Brake()
   {
    SystemConsoleWriteLine(Stop your train);
   }
  }

  如果我們使用抽象類或正常類Vehicles我們僅僅需要在類Vehicles中添加Brake()方法並且實現這個方法然後我們根據具體需要來決定是否要覆蓋類Car 或Train中的Brake()方法

  public abstract class Vehicles
  {
   …
   //新添加的方法無需在它的子類中覆蓋這個方法
   public void Brake()
   {
    SystemConsoleWriteLine(Stop your vehicles);
   }
  }

  Class則可以提供更好的靈活性你可以給Class添加任何Members只要添加的不是Abstract Method即可(也就是說你要提供一個有具體實現的方法)這樣就不會影響從該Class繼承的類已有代碼無需做任何改變

  設計原則

  優先考慮使用Class或Abstract Class而不是Interface

  使用Abstract Class代替Interface來降低Class繼承層次之間的耦合關系

  使用Interface如果你需要給一個值類型實現(Value Type 象STRUCT就是值類型)多態繼承(Polymorphic Hierarchy)(值類型除了從Interface繼承以外不能從其他Type繼承)

  在需要多重繼承的情況下可以考慮使用Interface

  參考目錄Microsoft NET Development Series Framework Design Guidelines

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15659.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.