In previous article I explained complete OOPS Concept. Now I will explain differences between
Abstract classes and Interfaces.
An Abstract class without any implementation just looks like an
Interface; however there are lot of differences than similarities between an
Abstract class and an Interface. Let's explain both concepts and compare their
similarities and differences.
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.