2011-11-24 63 views
0

可能重複:
When to use an interface instead of an abstract class and vice versa?
Difference between Interface, abstract class, sealed class, static class and partial class in C#?抽象類和接口有什麼區別?你想什麼時候使用它們?

public class Guru{ 
    public Enemy(int x, int y, int health, int attack, ...) { 
     ... 
    } 
    ... 
} 
public class UserDefinedClass extends Enemy { 
    ... 
} 
+0

歡迎來到StackOverflow,但此問題已被提問(和回答)之前(請參閱「相關」邊欄) –

回答

0

一個抽象類不能被實例化,但可以包含的代碼,而接口只包含方法定義,但不包含任何代碼。你需要實現界面中定義的所有方法。

如果你的邏輯對於所有的派生類都是一樣的,那最好用抽象類來代替接口。

您可以實現多個接口,但只能從一個類繼承。

1

如果您預計創建組件的多個版本,請創建一個抽象類。抽象類爲您的組件版本提供了一種簡單而簡單的方法。通過更新基類,所有繼承類都會隨着更改而自動更新。另一方面,接口一旦創建就無法更改。如果需要新版本的界面,則必須創建一個全新的界面。

  • 接口不能實現方法。
  • 抽象類可以實現方法。

  • 一個接口只能從另一個接口繼承。

  • 抽象類可以繼承一個類和一個或多個接口。

  • 接口不能包含字段。

  • 抽象類可以包含字段。
0

oAn接口意味着對象和想要使用它的代碼之間可能的最小耦合。一個抽象類意味着類之間的一些更強的關係,可能是一些實現的共同性。

,當我們要分開的擔憂儘可能(如依賴注入)

一個抽象類適用於需要使用域中

存在着密切的關係對象的常見的家庭模式的接口,應使用
相關問題