Java 8新特性-接口定义增强
Posted MPPC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 8新特性-接口定义增强相关的知识,希望对你有一定的参考价值。
为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的N多实现类也需要重写该方法的问题!Java8引入了接口定义增强概念!
Java8 打破了原有的接口的方法定义: 公共的、抽象的
- 默认方法:
- Java 8 还允许我们给接口添加一个非抽象的方法实现,只需要使用 default 关键字即可,这个特征又叫做扩展方法。
- 在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法。
- 但扩展方法不能够重载 Object 中的方法。例如:toString、equals、 hashCode 不能在接口中被重载。
- 例如:
-
interface IMassage{ public abstract void print(); //这是接口里面原有的定义 public default void fun(){ //在接口里面定义普通的方法 System.out.println("采用 default 关键字来在接口中定义普通方法!"); } } class MessageImpl implements IMassage{ @Override public void print() { System.out.println("接口的实现类!"); } }
-
- Test:
public class NewInterface { public static void main(String[] args) { IMassage massage = new MessageImpl(); //普通的方法实现调用 massage.print(); //调用在接口中的普通方法 massage.fun(); } }
- Test:
-
- 结果:
- 静态方法
- 另外一种就是在接口中定义静态方法,采用 static 关键字
- 例如:
interface IMassage{ public static void funStatic(){ System.out.println("采用 static 关键字来在接口中定义静态方法"); } }
- 调用的方式跟一般的静态方法调用相同
-
//调用在接口中定义的static 方法 IMassage.funStatic();
以上是关于Java 8新特性-接口定义增强的主要内容,如果未能解决你的问题,请参考以下文章