当前位置: 首页 > web >正文

第七节第三部分:从JDK8开始接口新增的方法、接口的多继承、注意事项

接口新增的三种方法

接口新增的方法

新增方法总结

新增方法总结

接口的多继承

接口的多继承

接口的多继承注意事项

注意事项

代码

代码一(从JDK8开始接口新增的三种方法)

A(接口)

package com.Interface_jdk;public interface A {//1.默认方法:必须使用default修饰,默认会被public修饰//实例方法:对象的方法,必须使用实现类的对象来访问default void test1() {System.out.println("默认方法");// test2();}/** 2.私有方法:必须使用private修饰,(JDK9才开始支持)* 实例方法::对象的方法,因为是私有方法,因此只能被该接口的其他方法调用*/
//    private void test2() {
//        System.out.println("==========");
//    }/** 3.静态方法:类的方法,必须使用static修饰,默认会被public修饰*/static void test3() {System.out.println("静态方法");}
}

B(类,继承接口A)

package com.Interface_jdk;public class B implements A{}

测试类Test(主程序)

package com.Interface_jdk;public class Test {//掌握接口新增的三种方法形式public static void main(String[] args) {B b = new B();b.test1();A.test3();}
}

运行结果

代码二(接口的多继承、注意事项)

代码1(接口的多继承说明)

package com.Interface_attention;public class Test {public static void main(String[] args) {}
}
interface A{void  test1();
}
interface B{void  test2();
}
interface C{void  test3();
}
interface D extends A,B,C{}
class E implements D{@Overridepublic void test1() {}@Overridepublic void test2() {}@Overridepublic void test3() {}
}

代码2(接口多继承的注意事项)

package com.Interface_attention;public class Test2 {public static void main(String[] args) {Zi z = new Zi();z.run();N n = new N();n.test();}
}//1.一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多继承。
interface I{void test1();
}
interface J{String test1();
}
//interface K extends I,J{}//2.一个类实现多个接口,如果多个接口中存在方法签名冲突,则此时不支持多实现。
//class E implements J,I{}//3.一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法,实现类会优先用父类的。
class Fu{public void  run(){System.out.println("父类的run方法");}
}interface IT{default void run(){System.out.println("接口的run方法");}
}
class Zi extends Fu implements IT{
}//4.一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
interface IT1{default void test(){System.out.println("IT1");}
}
interface IT2{default void test(){System.out.println("IT2");}
}
class N implements IT1,IT2{@Overridepublic void test() {System.out.println("自己的");}
}

运行结果

http://www.xdnf.cn/news/6582.html

相关文章:

  • 一.android Studio开发系统应用——导入TvSettings源码
  • Medical | 药品追溯码【待续】
  • 2025-5-15Vue3快速上手
  • 散热片为何“失效”?热阻路径建模的常见误区解析
  • 并发控制:确保多线程环境下的数据一致性与完整性
  • SymPy | 使用SymPy求解多元非线性方程组
  • 3DVR制作的工具或平台
  • windows ffmpeg msvc x64编译
  • keil uniFlash烧录出现八字节对齐错误
  • 并发编程(二)
  • ProfibusDP主站转ModbusRTU/TCP与横河AXG电磁流量计通讯案例
  • 语音识别——声纹识别
  • bfs搜索加标记连通区域id实现时间优化(空间换时间)
  • C++文件操作--1 文本文件操作
  • MYSQL之基本查询(CURD)
  • 基于javaweb的JSP+Servlet家政服务系统设计与实现(源码+文档+部署讲解)
  • c++,windows,多线程编程详细介绍
  • 机器视觉对位手机中框点胶的应用
  • Oracle统计信息收集时的锁持有阶段
  • 全面指南:Xinference大模型推理框架的部署与使用
  • 平替BioLegend品牌-FITC 标记 CD11c 抗体 [N418],精准识别小鼠树突细胞
  • [Harmony]大文件持久化
  • Spring-messaging-MessageHandler接口实现类ServiceActivatingHandler
  • Pangle出海指南:如何实现ROI最大化?
  • Spring Boot多数据源配置的陷阱与终极解决方案
  • 在 Vue 中使用 Three.js 渲染 GLB 格式模型
  • antd 主题色定制
  • C++(12):using声明
  • 智能包装机控制终端技术方案:基于EFISH-SCB-RK3588/SAIL-RK3588的全场景国产化替代解析
  • Console Importer浏览器插件的编译 及 制作成.crx浏览器插件的步骤