There are quite a big difference
between an interface and an abstract class, even though both look
similar.
- Interface definition begins with a keyword interface
so it is of type interface
- Abstract classes are declared with the abstract
keyword so it is of type class
- Interface has no implementation, but they have to be
implemented.
- Abstract class’s methods can have implementations and
they have to be extended.
- Interfaces can only have method declaration
(implicitly public and abstract) and fields (implicitly public static)
- Abstract class’s methods can’t have implementation
only when declared abstract.
- Interface can inherit more than one interfaces
- Abstract class can implement more than one interfaces,
but can inherit only one class
- Abstract class must override all abstract method and
may override virtual methods
- Interface can be used when the implementation is
changing
- Abstract class can be used to provide some default
behavior for a base class.
- Interface makes implementation interchangeable
- Interface increase security by hiding the
implementation
- Abstract class can be used when implementing framework
- Abstract classes are an excellent way to create
planned inheritance hierarchies and also to use as non-leaf classes in
class hierarchies.
No comments:
Post a Comment