Java JDK8的新特性
程序员文章站
2022-07-12 14:50:06
...
接口中的默认方法
接口的定义:
接口的作用是定义该类型的实例要具有的功能,也就是必须执行哪些工作,并且不需要关心这些工作的具体进行
接口的定义方法没有方法体,并且接口不允许定义实例变量,。如果一个类实现了这个接口,那么必须重写接口所有方法
类与接口的区别:
1.类中可以定义成员变量,但是接口中不允许存在成员变量
2.接口中所有的方法都没有具体实现(在Java8以前定义是正确的,但是Java8以后增加了接口的默认实现方法)
直接执行上述代码得到结果如下
接口中的静态方法
接口中的默认方法
如果有两个接口静态方法一模一样,并且一个实现类同时实现了这两个接口,此时不会报错,因为JDK8只能通过接口类调用接口中的静态方法,
这对编译器来说是可以区分的。但是如果两个接口中定义了一模一样的默认方法的时候,并且一个实现类同时实现了这两个接口,那么必须在实
现类中重写默认方法,否则编译器报错。
执行TestInterface.java之后的结果如下:
接口中的静态方法
接口实现类覆盖了接口中的default
java中接口的默认方法:
默认方法允许接口方法定义默认实现,子类方法不必须实现此方法而就可以拥有该方法的实现。
默认方法的优势:
默认方法主要的优势是提供了一种扩展接口的方法,而不破坏现有代码。
默认方法另外一个优势方法是可选的,子类可以根据不同的需求去重写默认实现。
接口中静态方法:
java8中为接口新增的一项功能:定义一个或者多个静态方法。在调用静态方法是,不需要实现接口,也不需要接口的实例,也即是说调
用类的静态方法的方式
语法:接口名.静态方法名
Lambda表达式
推荐阅读
-
css3 中的新特性加强记忆详解
-
android studio 3.6.0 绑定视图新特性的方法
-
Java8新特性Stream的完全使用指南
-
Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析
-
苹果iPad Air2与iPad Air有什么不同?盘点iPad Air2领先Air的15个新特性
-
Spring Boot2.3 新特性分层JAR的使用
-
JavaScript ES2019中的8个新特性详解
-
简述PHP7.4 新特性和废弃的功能
-
Java8新特性Lambda表达式的一些复杂用法总结
-
函数式接口 + Lamda表达式推导过程(Java8 新特性)