2011-11-24 65 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接口意味着对象和想要使用它的代码之间可能的最小耦合。一个抽象类意味着类之间的一些更强的关系,可能是一些实现的共同性。

,当我们要分开的担忧尽可能(如依赖注入)

一个抽象类适用于需要使用域中

存在着密切的关系对象的常见的家庭模式的接口,应使用
相关问题