Java8简明学习之接口默认方法

2018-07-24 07:53:16来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  接口中有默认方法实现
Java8允许我们使用default关键字,为接口声明添加非抽象的方法实现。

public interface DefaultInterFace {

    int plus(int x, int y);

    default int mul(int x, int y) {
        return x*y;
    }

    default int mul2(int x, int y) {
        return x*x*y*y;
    }
}
public class DefaultInterFaceImpl implements DefaultInterFace {

    @Override
    public int plus(int x, int y) {
        return x + y;
    }

//    @Override
//    public int mul(int x, int y) {
//        return x*x*y*y;
//    }
}
public class DefaultInterFaceTest {
    @Test
    public void testDefaultInterFace() {
        DefaultInterFace defaultInterFace = new DefaultInterFaceImpl();
        System.out.println(defaultInterFace.plus(5, 6));
        System.out.println(defaultInterFace.mul(5, 6));
        System.out.println(defaultInterFace.mul2(5, 6));
    }
}

  Java8中接口和抽象类的比较
相同点:
都能定义方法和属性(之前接口不能定义方法)。
抽象类和接口都可以不含有抽象方法。
抽象类和接口都不能创建对象。
继承和实现接口或抽象类的子类必须实现接口或抽象类的所有的方法。

不同点:
属性上,抽象类可以用各种各样的修饰符修饰。而接口的属性是默认的public static final
抽象类中可以含有静态代码块和静态方法,而接口不能含有静态方法和静态代码块。
抽象类可以含有构造方法,接口不能含有构造方法。
抽象类表示的是IS-A的关系,接口则表示LIKE-A的关系。
接口只能继承接口。而抽象类可以继承普通的类,也能继承接口和抽象类。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:增强型for循环与集合

下一篇:Java知识点梳理——继承