JDK7 JDK8 JDK9接口中的默认方法、静态方法、私有方法

news2024/11/22 17:33:23

JDK8开始之后接口新增的方法

JDK7以前:接口中只能定义抽象方法

JDK8的新特性:接口中可以定义有方法体的方法(默认、静态)

JDK9的新特性:接口中可以定义私有方法

 接口中的默认方法

InterA
package com.itheima.a06;

public interface InterA {
     // 抽象方法 不能拥有方法体
    public abstract void show();
    // public 可以省略 default不可以省略
    public default void print() {
        System.out.println("A接口中的默认方法---print");
    }
}
InterB
package com.itheima.a06;

public interface InterB {
     // 抽象方法 不能拥有方法体
    public abstract void show();
    // public 可以省略 default不可以省略
    public default void print() {
        System.out.println("B接口中的默认方法---print");
    }
}
intermpl
package com.itheima.a06;

public class intermpl implements InterA,InterB {
    @Override
    public void show() {
        System.out.println("实现类 重写的抽象方法");
    }

    // 默认方法不是抽象方法 不强制重写 如果重写 去掉default关键字
    // 实现多个接口 多个接口存在相同名字的默认方法,子类就必须对该方法重写
    @Override
    public void print() {
        System.out.println("重写接口中的默认方法");
    }
}
Test
package com.itheima.a06;

public class Test {
    public static void main(String[] args) {
        intermpl ii=new intermpl();
        ii.show();
        ii.print();
    }
}

JDK8以后新增的静态方法

Inter
package com.itheima.a07;

public interface Inter {
    public abstract void method();
    // 静态方法不能被重写
    public static void show(){
        System.out.println("Inter方法中的静态方法");
    };
}
InterImpl
package com.itheima.a07;

public class InterImpl implements Inter {
    @Override
    public void method() {
        System.out.println("InterImpl中重写的抽象方法");
    }
    // 不叫重写
    public static void show(){
        System.out.println("InterImpl方法中的静态方法");
    };
}
Test
package com.itheima.a07;

public class Test {
    public static void main(String[] args) {
        // 调用接口中的静态方法
        Inter.show();
        // 调用实现类中的静态方法
        InterImpl.show();
    }
}

JDK9以后的私有方法

InterA
package com.itheima.a08;

public interface InterA {

    public default void show1(){
        System.out.println("show1方法执行");
        show3();
    };


    public default void show2(){
        System.out.println("show2方法执行");
        show3();
    };
    //普通私有方法,给默认方法服务
    private void show3(){
        System.out.println("记录细节的代码");
    };
    public static void show11(){
        System.out.println("show1方法执行");
        show4();
    };


    public static void show22(){
        System.out.println("show2方法执行");
        show4();
    };
    //静态私有方法,给静态方法服务
    private static void show4(){
        System.out.println("记录细节的代码");
    };
}

总结

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++题解】 1468. 小鱼的航程

问题&#xff1a;1468. 小鱼的航程 类型&#xff1a;需要找规律的循环 题目描述&#xff1a; 有一只小鱼&#xff0c;它上午游泳150公里&#xff0c;下午游泳100公里&#xff0c;晚上和周末都休息&#xff08;实行双休日)&#xff0c;假设从周x(1<x<7)开始算起&#xf…

C语言基础——函数

ʕ • ᴥ • ʔ づ♡ど &#x1f389; 欢迎点赞支持&#x1f389; 个人主页&#xff1a;励志不掉头发的内向程序员&#xff1b; 专栏主页&#xff1a;C语言基础&#xff1b; 文章目录 前言 一、函数的概念 二、库函数 2.1 库函数和头文件 2.2 库函数的使用/…

python中关于函数的两种链式调用

函数之间的嵌套调用之函数的返回值就是另一个函数的参数 用一个函数的返回值作为另一个函数的参数。 如上图所示&#xff0c;将is0dd&#xff08;10&#xff09;的结果交给print函数来执行。 如上图所示&#xff0c;也是一个链式调用的案例&#xff0c;先将add&#xff08;x&a…

Linux宝塔部署数据库连接问题

博主在部署项目时发现网页可以成功部署&#xff0c;但是登录界面一直登录不进去推测是数据库连接问题。 博主当时在IDEA中写的是用户名为root 密码123456 但是在宝塔中因为自己是跟着教程学的所以就顺手把用户名和密码都改了&#xff0c;于是java中的配置和数据库配置连接不上…

toB市场 | 我们喜欢赞助这样的展会活动

过去的六一儿童节&#xff0c;刚去成都参加了个行业内的展会。受护网行动、儿童节等等的影响&#xff0c;这次去成都的客户并不算太多&#xff0c;但会议延续了一贯的高品质&#xff0c;让我们收货满满。 选择目标受众来得多的展会 不同厂商会视自己的产品和模式、目标客户来…

15天搭建ETF量化交易系统Day7—全自动化交易系统

搭建过程 每个交易者都应该形成一套自己的交易系统。 很多交易者也清楚知道&#xff0c;搭建自己交易系统的重要性。现实中&#xff0c;从&#xff10;到&#xff11;往往是最难跨越的一步。 授人鱼不如授人以渔&#xff0c;为了帮助大家跨出搭建量化系统的第一步&#xff0c;我…

热搜爆了!AI秒写3篇湖南高考作文,邀你来打分!

今天上午 全国高考语文科目结束 作文题目成为焦点 相关话题立刻冲上热搜 今年湖南高考采用的是新课标 I 卷 作文题涉及到了人工智能 引发大量网友讨论 ↓↓↓ 随着互联网的普及、人工智能的应用&#xff0c;越来越多的问题能很快得到答案。那么&#xff0c;我们的问题是…

零基础入门学用Arduino 第一部分(一)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…

编程规范-代码检测-格式化-规范化提交

适用于vue项目的编程规范 – 在多人开发时统一编程规范至关重要 1、代码检测 --Eslint Eslint&#xff1a;一个插件化的 javascript 代码检测工具 在 .eslintrc.js 文件中进行配置 // ESLint 配置文件遵循 commonJS 的导出规则&#xff0c;所导出的对象就是 ESLint 的配置对…

SG3225EEN贴片差分晶振可实现高频高精度的要求

在高速通信和高性能电子设备的发展中&#xff0c;高频高精度时钟源的需求日益增加。SG3225EEN贴片差分晶振以其出色的性能&#xff0c;满足了这一需求&#xff0c;成为这些应用领域的理想选择。SG3225EEN贴片差分晶振采用先进的制造工艺&#xff0c;提供高精度和低抖动的时钟信…

005.FashionMNIST数据集简介

一、FashionMNIST数据集简介 FashionMNIST数据集&#xff0c;作为经典的MNIST数据集的现代替代品的数据集&#xff0c;是衣物分类数据集&#xff0c;由Zalando&#xff08;一家德国的在线时尚零售商&#xff09;发布。 FashionMNIST数据集和MNIST相比。图片尺寸相同&#xff0c…

超声波风速仪—快速捕捉气象变化

TH-WQX2超声波风速仪&#xff0c;特别是在风力发电中作为风速风向仪的应用&#xff0c;是一种基于超声波原理测量风速和风向的设备。以下是对其特点、技术参数和应用的详细介绍&#xff1a; 特点 高精度测量&#xff1a;超声波风速风向仪利用超声波在空气中的传播速度随风速变化…

2024下《系统集成项目管理工程师》50个高频考点汇总!值得收藏

宝子们&#xff01;5月软考考完了&#xff0c;终于可以考系统集成了&#xff01; 整理了50个高频考点&#xff0c;涵盖全书90%考点&#xff0c;先把这个存下&#xff01;再慢慢看书&#xff0c;边看书边背这个 1、信息安全的基本要素有&#xff1a; &#xff08;1&#xff09…

爬取股票数据python

最近在搜集数据要做分析&#xff0c;一般的数据来源是一手数据&#xff08;生产的&#xff09;和二手数据&#xff08;来自其他地方的&#xff09;。 今天我们爬取同花顺这个网站的数据。url为&#xff1a;https://data.10jqka.com.cn/ipo/xgsgyzq/ 话不多说直接上代码。有帮…

前端框架前置知识之Node.js:fs模块、path模块、http模块、端口号介绍

什么是模块&#xff1f; 类似插件&#xff0c;封装了方法 / 属性 fs 模块- 读写文件 代码示例 // 1. 加载 fs 模块对象 const fs require(fs) // 2. 写入文件内容 fs.writeFile(./test.txt, hello, Node.js, (err) > {if (err) console.log(err) //若 err不为空&#xf…

26-LINUX--I/O复用-select

一.I/O复用概述 /O复用使得多个程序能够同时监听多个文件描述符&#xff0c;对提高程序的性能有很大帮助。以下情况适用于I/O复用技术&#xff1a; ◼ TCP 服务器同时要处理监听套接字和连接套接字。 ◼ 服务器要同时处理 TCP 请求和 UDP 请求。 ◼ 程序要同时处理多个套接…

工业无线通信解决方案,企业在进行智能化升级改造

某大型制造企业在进行智能化升级改造,需要将分布在各个车间的数控机床、自动化生产线、AGV小车等设备连接到云端,实现设备的远程监控、数据采集分析等功能。之前工厂内部是用工业以太网连接,存在布线难、成本高、灵活性差等问题。 在了解客户需求后,我司星创易联的工程师建议客…

png怎么变成jpg?教你3种方法一键批量转换

png怎么变成jpg&#xff1f;PNG转JPG在图像处理中扮演着重要的角色。除了能够显著减小文件大小&#xff0c;使图像更易于分享和传输外&#xff0c;这种转换还能确保图像在各种平台和设备上都能得到良好的展示效果。无论是网站加载速度的优化&#xff0c;还是移动设备上的流畅浏…

教师常用小程序分享

和大家分享几款超级实用的教学小程序&#xff0c;不仅能够提高我们的办公效率&#xff0c;还能让我们的教学生活变得更加轻松有趣。 腾讯文档&#xff1a;云端协作的利器 教学协作是必不可少的。腾讯文档小程序&#xff0c;就是云端协作的利器。支持多人在线编辑文档&#xff…

在Obsidian中插入目录的解决方案

常见的方案有floating toc插件。但是这个插件与另一个用于给导出pdf添加书签的插件Better Export PDF不兼容。 因此推荐另一个解决方案&#xff1a;Dynamic Table of Contents 此插件没有上架到社区插件市场&#xff0c;需要手动去github下载安装 GitHub - Aidurber/obsidia…