JDK1.8接口非抽象方法
Posted 花伤情犹在
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK1.8接口非抽象方法相关的知识,希望对你有一定的参考价值。
在 JDK1.8,允许我们给接口添加两种非抽象的方法实现:
-
默认方法,添加 default 修饰即可;
-
静态方法,使用 static 修饰;示例如下:
interface Test{
//这个是默认方法
default String get(String aa){
System.out.println("我是jdk1.8默认实现方法...");
return "";
}
//这个是静态方法
static void staticmethod(){
System.out.println("我是静态方法");
}
}
调用得话,静态方法只能通过接口名调用,不可以通过实现类的类名或者实现类的对象调用,default 方法只能通过接口实现类的对象来调用。
public class Test {
public static void main(String[] args) {
new Test(){}.ze();//通过匿名内部类调用默认方法(这里的匿名内部类即实现类)
Test.cnm2();//通过接口名称.方法名()
}
}
以上是关于JDK1.8接口非抽象方法的主要内容,如果未能解决你的问题,请参考以下文章
jdk1.8新特性 : 接口中可以有普通方法(非静态方法)和静态方法 , 颠覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,后面必须要加一句jdk1.7和1..7之前