这个新特性的用途:java类只支持单继承,但可实现多个接口,在此新特性出来之前,所有的子类共用的方法都只能写在extends的抽象类中,有点不符合面向对象的封装,现在可以写在实现的接口中,感觉更加符合面向对象的特性。
简单的代码demo:
interface:
package interfaceDemo;
public interface TestInterface {
int sum(int i,int j);
default int multipute(int i,int j) {
return i * j;
}
}
impl:
package interfaceDemo;
public class TestInterfaceImpl implements TestInterface{
@Override
public int sum(int i, int j) {
return i + j;
}
public static void main(String[] args) {
TestInterfaceImpl test = new TestInterfaceImpl();
int result = test.multipute(2, 3);
System.out.println(result);
}
}
总结:interface中的的方法实现用default 修饰之后就可以了,子类就可以直接使用了,当然,interface中的方法实现也是支持方法覆盖的。如下impl2:
package interfaceDemo;
public class TestInterfaceImpl2 implements TestInterface{
@Override
public int sum(int i, int j) {
return 0;
}
@Override
public int multipute(int i,int j) {
return i/j;
}
public static void main(String[] args) {
TestInterfaceImpl2 test = new TestInterfaceImpl2();
System.out.println(test.multipute(10, 2));
}
}