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("这是接口中定义的私有方法");
}

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

相关推荐
月华路1 小时前
G1 GC 对数组与大对象(Humongous)的处理
java·jvm·算法
liangshanbo12152 小时前
虚拟列表深度面试题整理
java·开发语言·前端
gugucoding2 小时前
59. 【Java】Spring Boot 入门:第一个 Web 应用
java·开发语言·spring boot
10mAh3 小时前
【Java】HashMap 的 put 到底做了什么?——冲突、扩容与树化实测
java·开发语言·hash
我命由我123453 小时前
人脸识别 - 勒克斯(光线照射到物体表面上的明亮程度)
android·java·学习·java-ee·人脸识别·学习方法·android runtime
TechLee4 小时前
跨语言加解密总对不上?这个纯 Go 神库让 AES/RSA 与 PHP、Java 100% 互通
java·后端·算法
LINgZone24 小时前
系统架构与分支规范
java·数据库·架构
AC赳赳老秦4 小时前
企业级合规审计体系:用 OpenClaw 落地采集全链路留痕,自动生成合规审计报告
java·python·django·beautifulsoup·php·deepseek·openclaw
吃杠碰小鸡5 小时前
VsCode中开发Java项目
java·vscode