A class may implement one or more interfaces. | A class may inherit only one Abstract Class or any other class |
An interface cannot have access modifiers for any types declared in it. By Default all are public. | An abstract class can contain access modifiers. |
If various implementations only share method signatures then it is better to use Interfaces. | If various implementations are of the same kind and use common behavior or status then abstract class is better to use. |
Requires more time to find the actual method in the corresponding classes. | Fast |
All methods declared in interface must be implemented in derived class. | Only abstract methods need to be implemented in derived classes. |
If we add a new method to an Interface then we have to track down all the implementations of the interface and define implementation for the new method. | If we add a new method to an abstract class then we have the option of providing default implementation and therefore all the existing code will work without any modification. |
No fields can be defined in interfaces | We can define fields and constants in abstract class. |
0 Comments