Java8是由oracle公司于2014年3月正式发布,它是继java5 以来最重要的发布版本。Java8包含了很多新的特性,可以简化开发,提升代码的可读性。
Java8的一些重要新特性包括:
l 接口增强
l 方法引用
l Lambda表达式
l Stream
其中还有一些其他的特性,比如注解的更新,以及一些新的API等。以上四个特性在java8的开发中会比较常用。因为接口增强特性比较独立,而其他三个特性或多或少都有关联关系。这里先记录下接口增强特性的学习笔记。
1.什么是接口增强?
在java8以前的版本中,定义一个接口时,所有的方法必须是抽象方法,不能有具体实现,这是java语法规定的。但是在java8中定义一个接口时,在满足特定的前提下,可以有方法的具体实现。这样一个接口中可以有属性,可以有抽象方法,也可以有具体的方法,这跟java8以前的接口比,明显接口的功能变得强大了。
2.接口中如何定义具体的方法实现?
首先,接口中定义具体的方法实现是有限制的,它不能像我们在一个普通类那样随便定义方法实现,它只能定义default和static类型的方法。示例代码如下:
interface MyInterface { public void print(); // default 和 static 方法的出现为了解决实现该接口的子类代码重复的问题 default void defaultMethod() { System.out.println("default method invoked! "); } default int add(int a, int b){ return a + b; } static void staticMethod() { System.out.println("static method invoked! "); } static int multiply(int a, int b){ return a * b; } //... }