jdk8和jdk9中接口的新特性

jdk8之前:声明抽象方法,修饰为public abstract。
jdk8:添加声明静态方法,默认方法。
jdk9:添加声明私有方法
jdk8:
①接口中声明的静态方法只能被接口来调用,不能使用其实现类进行调用
静态方法的声明:
public static void method1()//public可以省略
{
System.out.println("这是静态方法");
}
②接口中声明的默认方法可以被实现类继承,实现类在没有实现此方法的情况下, 默认调用接口中声明的默认方法。如果重写了此方法,则调用的是重写后的方法。
默认方法的声明:
public default void method2()//public可以省略
{
System.out.println("这是默认方法");
}
③如果类实现了两个接口,而两个方法中定义了同名同参数列表的默认方法。则实现类在没有重写此两个接口默认方法的情况下,会接口冲突。 要求:此时实现类必须要重写接口中定义的同名同参数的方法。
④子类(或实现类)继承了父类并实现了接口。父类和接口中声明了同名同参数的方法。(其中,接口中的方法是默认方法). 默认情况下,子类(实现类)在没有重写此方法的情况下,调用的是父类中的方法。 ---- 类优先原则
⑤如何在子类(实现类)中调用父类或接口中被重写的方法
method3();//调用自己类中的方法,省略了this.
super.method3();//调用父类中的方法
CompareA.super.method3();//调用接口CompareA中的默认方法
CompareB.super.method3();//调用接口CompareB中的默认方法
jdk9:
私有方法的声明:
private void method5()
{
System.out.println("这是接口中定义的私有方法");
}

接口中私有方法的用途,供接口中其他的默认方法调用。

相关推荐
七星静香13 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员14 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU14 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie617 分钟前
在IDEA中使用Git
java·git
Elaine20239132 分钟前
06 网络编程基础
java·网络
G丶AEOM34 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼201335 分钟前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀36 分钟前
LRU缓存算法
java·算法·缓存
镰刀出海39 分钟前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel