Difference between Interface vs Abstract Class

 


Interface Abstract Class
Multiple Inheritance is possible, a class can implement more than one number of interface. A class can inherit only one class.
'Implements' keyword is used. 'Extends' keyword is used.
For interface by default methods are public and abstract, no need to specify. They have to be declare as public or abstract.
No implementation of methods. Can have concrete as well as abstract methods.
All methods have to be overridden. Only abstract methods have to be overridden.
All variables are public, static and final. In abstract, variables have to be declare explicitly.
Methods can't be static. Non-abstract methods can be static.