According to Oracle's Javadocs -
The default methods enable you to add new functionality to the library's interfaces and ensure that binaries are compatible with code written for older versions of these interfaces compatibility.
A static method is a method that is associated with the class in which it is defined, not with any object. Each instance of a class shares its static methods.
The static method in the interface is part of the interface. The class cannot implement or override it, but the class can override the default method.
gentlemen. No | Button | Static interface method | Default method|
---|---|---|---|
1
|
Basic | Static method, only belongs to the interface. We can write the implementation of this method in the interface itself | This is a method with the default keyword, and the class can override this method | tr>
2 | Method call | Static methods can only be called on interface classes, not on classes . | It can be called on the interface or on the class |
3
|
Method name | Interface and implementation class can have static methods with the same name and will not overwrite each other. | We can override the default method in the implementation class |
4. | Use Case | It can be used as a utility method | It can be used to provide common functionality in all implementation classes |
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { // Call interface static method on Interface DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); // Call default method on Class defaultStaticExampleClass.show(); } }
The above is the detailed content of The difference between default interface methods and static interface methods in Java 8. For more information, please follow other related articles on the PHP Chinese website!