Before Java 8, interfaces could have only abstract methods. The implementation of these methods has to be provided in a separate class. So, if a new method is to be added in an interface, then its implementation code has to be provided in the class implementing the same interface. To overcome this issue, Java 8 has introduced the concept of default methods which allow the interfaces to have methods with implementation without affecting the classes that implement the interface.
16 Default Method Executed
The default methods were introduced to provide backward compatibility so that existing intefaces can use the lambda expressions without implementing the methods in the implementation class. Default methods are also known as defender methods or virtual extension methods.
The interfaces can have static methods as well which is similar to static method of classes.
16 Static Method Executed
Default Methods and Multiple Inheritance
In case both the implemented interfaces contain deafult methods with same method signature, the implementing class should explicitly specify which default method is to be used or it should override the default method.
Default TestInterface1 Default TestInterface2
- Interfaces can have default methods with implementation from java 8 onwards.
- Interfaces can have static methods as well similar to static method of classes.
- Default methods were introduced to provide backward compatibility for old interfaces so that they can have new methods without effecting existing code.
This article is contributed by Akash Ojha. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Static methods vs Instance methods in Java
- Default constructor in Java
- Default array values in Java
- Replace null values with default value in Java Map
- How does default virtual behavior differ in C++ and Java ?
- Java.util.BitSet class methods in Java with Examples | Set 2
- Java.io.BufferedWriter class methods in Java
- Methods in Java
- CharBuffer get() methods in Java
- CharBuffer put() methods in Java
- LongBuffer put() methods in Java
- Java Interface methods
- BigInteger max() and min() Methods in Java
- IntBuffer put() methods in Java | Set 1
- IntBuffer get() methods in Java | Set 1
Improved By : SyedAtamishAli