java1.8新特性之一——在interface中写实现方法
这个新特性的用途:java类只支持单继承,但可实现多个接口,在此新特性出来之前,所有的子类共用的方法都只能写在extends的抽象类中,有点不符合面向对象的封装,现在可以写在实现的接口中,感觉更加符合面向对象的特性。
JDK1.8中为了加强接口的能力,使得接口可以存在具体的方法。
前提是方法需要被default或static关键字所修饰。
简单的代码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));
}
}