Difference between abstract class and interface
Answer Posted / sando
What is an Abstract Class?
An abstract class is a special kind of class that cannot be
instantiated. So the question is why we need a class that
cannot be instantiated? An abstract class is only to be
sub-classed (inherited from). In other words, it only allows
other classes to inherit from it but cannot be instantiated.
The advantage is that it enforces certain hierarchies for
all the subclasses. In simple words, it is a kind of
contract that forces all the subclasses to carry on the same
hierarchies or standards.
What is an Interface?
An interface is not a class. It is an entity that is defined
by the word Interface. An interface has no implementation;
it only has the signature or in other words, just the
definition of the methods without the body. As one of the
similarities to Abstract class, it is a contract that is
used to define hierarchies for all subclasses or it defines
specific set of methods and their arguments. The main
difference between them is that a class can implement more
than one interface but can only inherit from one abstract
class. Since PHP doesn't support multiple inheritance,
interfaces are used to implement multiple inheritance.
Both Together
When we create an interface, we are basically creating a set
of methods without any implementation that must be
overridden by the implemented classes. The advantage is that
it provides a way for a class to be a part of two classes:
one from inheritance hierarchy and one from the interface.
When we create an abstract class, we are creating a base
class that might have one or more completed methods but at
least one or more methods are left uncompleted and declared
abstract. If all the methods of an abstract class are
uncompleted then it is same as an interface. The purpose of
an abstract class is to provide a base class definition for
how a set of derived classes will work and then allow the
programmers to fill the implementation in the derived classes.
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
Explain the number or character entered through keyboard gets converted to equivalent ascii code & it get stored on ram in the binary form.
Explain about clr?
inprocess vs out process session state : Dot net architecture
What's the difference between an application and a program?
What is parallel computing?
Explain .net mobile events? : Microsoft dot net mobile
Does .NET runtime offer Deterministic Destruction or not?
How can implement drag and drop using atlas?
Why the config file might not be writable
Use of Enable view state ? if turn off what happen ?
What are the different pipelining hazards? : Dot net architecture
Why am I getting an invalidoperationexception when I serialize an arraylist?
Describe the advantages of writing a managed code application instead of unmanaged one. What is involved in certain piece of code being managed?
Explain the number or character entered through keyboard gets converted to equivalent ascii code & it get stored on ram in the binary form. What is the exact procedure on hardware that converts the ascii value to binary? : .NET Architecture
What is .net mobile automatic paging? : Microsoft dot net mobile