- Until java 8 concreate methods were not allowed in Interface
- From java 8 it is allowed
- If no access specifiers are mentioned ahead of method then is considered as Abstract
- Hence they came up with a keyword default
- Using default keyword ahead of a concrete class in Interface, you can create non abstract methods in Interface
Why Default method ?
- If a new method was introduced in an Interface
- All the implementing classes were forced to provide concrete implementation of the same.
- To overcome this default method came into picture.
Example :
interface TestInterface { // abstract method public void square(int a); // default method default void show() { System.out.println("Default Method Executed"); } }
Difference between Abstract class Interface after java 8