Accessing other interface methods within default method
suggest changeYou can as well access other interface methods from within your default method.
public interface Summable { int getA(); int getB(); default int calculateSum() { return getA() + getB(); } } public class Sum implements Summable { @Override public int getA() { return 1; } @Override public int getB() { return 2; } }
The following statement will print 3:
System.out.println(new Sum().calculateSum());
Default methods could be used along with interface static methods as well:
public interface Summable { static int getA() { return 1; } static int getB() { return 2; } default int calculateSum() { return getA() + getB(); } } public class Sum implements Summable {}
The following statement will also print 3:
System.out.println(new Sum().calculateSum());
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents