Differentiate between an Interface and an Abstract class
Interface:
Interfaces
are closely related to abstract classes that have all members abstract.
All the methods of an interface must
be virtual.
A Class
that implements an interface must provide concrete implementation of all the
methods definition in an interface or else must be declared an abstract class.
In C#,
multiple inheritance is possible only through implementation of multiple
interfaces.
An
interface defines a contract and can only contains four entities viz methods,
properties, events and indexes. An interface thus cannot contain
constants, fields, operators, constructors, destructors, static constructors,
or types.
Also an interface cannot contain
static members of any kind. The modifiers abstract, public, protected,
internal, private, virtual, override is disallowed, as they make no sense in
this context.
Class members that implement the
interface members must be publicly accessible.
Interface increase security by
hiding the implementation.
Abstract
Class:
At least
one method of an abstract class must be an abstract method that means it may
have concrete methods.
Abstract class’s methods can’t have
implementation only when declared abstract, otherwise they can have
implementations and they have to be extended.
Abstract class can implement more
than one interfaces, but can inherit only one class.
Abstract classes can only be derived
once.
Abstract class must override all
abstract method and may override virtual methods.
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