JDK1.8新特性之接口中的静态方法与默认方法

从FinFET到GAA:手把手解读2nm芯片制造的关键技术(含BSPDN避坑指南) 本文深入解读了2nm芯片制造从FinFET向全环绕栅极(GAA)晶体管架构演进的核心技术,并重点剖析了背面供电网络(BSPDN)的三种实现路径及其工程挑战。文章旨在帮助工程师理解技术变革的内在逻辑,并为应对2nm节点设计中的关键问题提供实用指南。 阅读详情

一. 新特性概述概述

在Jdk8之前,Interface之中可以定义变量和方法,变量必须为public static final的,由于实现接口中的方法必须要重写它的方法,而子类继承抽象类必须重写其所有的抽象方法,所以接口中的方法必须隐式为public abstract的。JDK1.8中允许我们在接口中定义static方法和default方法

二. 代码示例

Jdk1.8之前,接口中只能有public abstract隐式修饰的抽象方法。

public interface JDK8BeforeInterface {
    
    public static final int field1 = 0;

    public abstract void method1(int a) throws Exception;

    //隐式的被public abstract修饰
    void method2(int a) throws Exception;
}

 

Jdk1.8及以后,允许我们在接口中定义static方法和default方法。

public  interface JDK8Interface {

    //static 修饰定义静态方法
    static void staticMethod(){

       System.out.println("接口中的静态方法。");
    }
    //default修饰符定义默认方法
    default void defaultMethod() {

        System.out.println("接口中的默认方法。");
    }
}

代码解析:

public interface JDK8Interface {

        //static 修饰定义静态方法

        static void staticMethod() {
                System.out.println("接口中的静态方法。");
        }

        //default修饰符定义默认方法 

        default void defaultMethod() {
                 System.out.println("接口中的默认方法。");
        }
}

定义一个接口的实现类:

public class JDK8InterfaceImpl implements JDK8Interface {

    //实现接口后,因为默认方法不是抽象方法,所以可以不重写,但是如果开发需要,也可以重写。
}

静态方法,只能通过接口名来调用,不可以通过实现类的类名或者实现类的对象来调用。default方法,只能够通过接口实现类的对象来调用。

public class Main {

        public static void main(String[] args) {

        //static方法必须通过接口类来调用,不可以通过实现类或者是实现类的对象来调用
        JDK8Interface.staticMethod();

        //default方法必须通过实现类的对象来调用
        new JDK8InterfaceImpl().defaultMethod();
         }
}

当然如果接口中的默认方法不能满足某个实现类需要,那么实现类可以覆盖默认方法。

public class AnOtherJDK8InterfaceImpl implements JDK8Interface {

        @Override
         public void deaultMethod() {
            System.out.println("接口实现类覆盖了接口中的default方法");
        }
}

 

Python爬虫教程:抓取地方政府网站的公开文件与政策信息 Web爬虫是指一种自动化脚本,用于模拟人类浏览器访问网页、提取网页内容的数据抓取工具。发送请求到目标网页;获取网页内容;解析网页内容,提取所需数据;将数据保存或进一步处理。爬虫可以抓取各种形式的数据,如文本、图片、文件等。本教程将重点展示如何抓取地方政府网站上公开的政策文件、公告等信息。许多政府网站都会采取一定的反爬虫措施,防止大量数据被爬取。IP封锁:如果短时间内大量请求来自同一IP,可能会被封锁。验证码:一些网站会使用验证码来验证访问者是否为机器人。动态加载。 阅读详情

相关推荐

从零到一:手把手教你用STM32和WiFi打造智能温室大棚的物联网核心

本文详细介绍了如何利用STM32单片机和WiFi技术从零构建智能温室大棚的物联网核心系统。内容涵盖硬件选型、传感器集成、低功耗WiFi通信、自动控制逻辑及OLED显示,提供实际部署中的优化技巧和故障排查方案,帮助开发者打造稳定可靠的农业自动化解决方案。

c7d8e的博客 180

JDK1.8 新特性(一)【默认方法、静态方法和Lambda表达式】

JDK8新特性之接口静态方法、默认方法、Lambda表达式

功不唐捐,玉汝于成 556

视频动作识别、行为识别、时空动作检测数据集整理(持续更新)

动作、行为、事件 在计算机视觉的相关研究中,人体的动作、行为识别是一个基础研究问题。但目前识别、检测人类的动作/行为仍然是一个巨大的挑战。这里整理下当前相关的细分任务、数据集和开源代码(持续更新中)。

人工智能算法与工程实践 4万+

【JDK8 新特性2】JDK 8 接口默认方法/静态方法

在JDK 8以前接口中只能有抽象方法。存在以下问题: 如果给接口新增抽象方法,所有实现类都必须重写这个抽象方法。不利于接口的扩展。

一切总会归于平淡 2394

OpenCV中SGBM中BT代价计算

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_27606639的博客 5978

海思HiMPP开发避坑指南:MMZ内存与系统内存傻傻分不清?一个例子讲透

本文深入解析海思HiMPP开发中MMZ内存与系统内存的关键差异与应用场景,帮助开发者避免常见的内存混淆问题。通过实际案例和性能对比,详细介绍了MMZ内存的特性和优化策略,提升多媒体处理效率。

weixin_30772105的博客 469

JDK8的新特性

jdk8新特性

a778203081的博客 1542

静态分析工具COBOT与Testbed对比

Testbed为规则检查工具的代表,市场占有量非常大,但随着时间的推移,大家从规则匹配转向了用静态分析工具检查Bug,所以规则检查型工具占有量比开始时候已经减少,但仍有一些比较落后的单位还在继续采购此类工具。3、通过对开源工程的测试,进行误漏报率的对比,发现COBOT(库博)的误漏报率相比Testbed较低,因COBOT主打国内市场,在众多军工单位进行大量试用及使用,吸取了众多单位的意见和建议,更加符合国内军工单位的使用习惯及测试要求。4、此外库博在功能上还可以进行计划任务,检测队列,检测并发的功能支持。

chengoodflower的博客 2062

JDK8新特性之接口的静态方法和默认方法

JDK8之前我们在接口中定义成员变量只能是public static final的,定义的成员方法只能是public abstract的,默认省略。JDK8前后这一概念等价。定义接口BeforeJDK8Interface如下: name和name1表述等价,getName()和getName1()表述等价。public interface BeforeJDK8Interface { Stri

kingyxfly的博客 445

python sci sci-hub 爬论文

sci-hub 爬虫 后续加入对于时间的排序,下载最新文献 参考: https://www.guanjihuan.com/archives/6846 https://blog.csdn.net/czh2637750821/article/details/115508922

weixin_42783619的博客 3543

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4308

接口中的默认方法到底有什么用!

接口中的默认方法是指在接口中实现的具体方法,它们可以在不破坏接口实现的情况下,向现有的接口添加新的方法。但是,Java 8引入了默认方法的概念,使得接口可以定义具体的方法,而不需要实现类必须实现这些方法。接口的扩展性:默认方法允许接口在不破坏现有代码的情况下进行扩展,这样可以让接口具有更好的扩展性。默认方法的作用是允许接口在不破坏现有代码的情况下进行扩展,同时也提高了代码的可读性和可维护性。代码复用性:默认方法可以在多个接口中共享,这样可以减少代码的重复编写,提高代码的复用性。

思索的涟漪,突破自我 1061

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 551

JDK1.8新特性---接口中的默认方法与静态方法

一、默认方法 在JDK1.8之后,接口中可以有默认方法 interface MyInterface1 { default String getName(){ return "哈哈哈"; } } 但是这会出现一个问题,就是若一个类它即继承另一个类,又实现了一个接口,而那个接口里面的默认方法的方法名和参数与继承类中的方法名和参数相同,那最后调用方法是到底是调用谁的方...

killerofjava的博客 638

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JDK1.8新特性总结 - 篇五(接口中的默认方法与静态方法)

一. 简介 jdk1.8以前,只允许在接口中定义两种类型的数据:全局静态变量和抽象方法。但在jdk1.8中引入了两个全新的概念: 1. 在接口中可以使用default关键字修饰非抽象方法。 2. 接口内可以编写静态方法,并且可以被实现。 二. 接口中的默认方法 这里需要介绍几种场景: 1. 若一个类既继承了某个...

爱喝咖啡的程序员的博客 653

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java之JDK1.8新特性五(接口中的默认方法与静态方法)

1、默认方法 1.1 概述 Java 8中允许接口中包含具有具体实现的方法,该方法称为“”默认方法“”,用default关键字修饰 示例代码如下: interface Inter{ void show();//抽象方法 default void method() { System.out.println("默认方法"); } } 1.2 作用 供实现类调用或者实现类重写 1.3 说明 ...

dpc的博客 404

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk1.8新特性 接口中的默认方法与静态方法

    Java 8中允许接口中包含具有具体实现的方法,该方法称为“默认方法”,默认方法使用default关键字修饰。 interface MyInterface<T>{ T cs(int a); default String getResult() { return "1"; } }接口默认方法的”类优先”原则    若一个接口中定义了一个默认方法,而另外一...

Keith003的博客 532

JDK1.8新特性-lambda表达式与接口中的默认方法和静态方法

Lambda表达式(也称为闭包)Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据。Lambda表达式用于简化Java中接口式的匿名内部类。函数式接口就是一个具有一个方法的普通接口。像这样的接口,可以被隐式转换为lambda表达式。(注意:当返回值只有一句话时,可以不使用大括号,如果写return必须带大括号。默认方法与静态方法并不影响函数式接口的契约,可以任意使用。(参数1,参数2...) -> { ... }我爱学习English。我爱学习English。

xintaitehao的博客 709

JDK1.8新特性(三)使用详情

继JDK1.8新特性(一),JDK1.8新特性(二)后继续学习JDK1.8新特性。 【7】Optional 类 final修饰的Optional<T> 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用null 表示一个值不存在,现在Optional 可以更好的表达这个概念。并且可以避免空指针异常。 常用方法: Optional.of(T t)

小小默:进无止境 1958

JDK1.8 新特性

1. JDK1.8新特性 2. JDK1.8新特性简介 2.1 Lambda表达式 什么是Lambda表达式 Lambda是一个匿名函数, 我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递).可以写出更加简洁,灵活的代码. 作为一种更加紧凑的代码风格, 使java的语言表达能力得到了提升. 格式就是(方法参数)->方法体箭头函数表示法 如果没有方法参数, 小括号不能省略, ()->方法体 如果方法参数是一个的话, 小括号可以省略也可以带着, (m)->方法体或

啊策策大数据社区 237

jdk1.8新特性-最新最全

一、引言 jdk1.8出来已经一段时间了,现在12也已经出来了,越来越多的公司已经在使用了jdk1.8的新特性了,1.8和1.6相比有很大层次的特性的提升。从代码运行的性能、方法的简单化都有了很大层次的提升。 二、新特性 在jdk1.8中对hashMap等map集合的数据结构优化。hashMap数据结构的优化 原来的hashMap采用的数据结构是哈希表(数组+链表),hashMap默认大小是16,...

qq_38758265的博客 1315

JDK.1.8新特性

阿斯頓

czx1254678152的博客 206

了解Java抽象类和接口

进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用。

AE_BD的博客 852

JDK1.8新特性详解

函数式接口是一种只包含一个抽象方法的接口。函数式接口通常作为函数式编程和Lambda表达式的基础。Java 8为常见的函数式编程场景提供了专门的函数式接口,比如,和等。:断言型接口,输入一个参数T,返回一个布尔值,用于执行一些判断逻辑。:函数型接口,输入一个参数T,返回一个结果R,用于执行一些转换逻辑。:消费型接口,输入一个参数T,表示消费掉这个参数,执行一些操作但没有返回值。:供给型接口,返回一个数据T,用于执行一些数据生成操作。Filter:过滤,用于过滤出满足条件的元素。Map。

weixin_44251099的博客 3975

面向对象高级之接口

面向对象高级之接口 接口 ​ 接口(interface)是一种特殊的抽象类,本质上不是一个类,里面只能包含常量和方法的定义(不允许实现),接口就是一套未实现方法的集合。 声明语法 [修饰符] 接口名称{ ​ [常量定义] ​ [抽象方法的定义] } 从以上表现来看,接口中不存在像普通类一样的属性,以及普通方法,因此接口实际上就是一套标准,既然是标准,那就必然存在实现,java中的类可以实现多个接...

努力耕田的牛 186

【Java基础|第三十六篇】JDK1.8中的新特性

【JDK1.8新特性摘要】150字 JDK1.8引入三大核心特性:1.接口方法支持默认实现,通过default/static方法解决接口升级的兼容性问题;2.Lambda表达式实现行为参数化,采用(参数)->函数体的简洁语法,配合函数式接口(@FunctionalInterface)提升代码灵活性;3.方法引用(::操作符)作为Lambda的语法糖,支持静态方法、实例方法、构造方法的直接引用。这些特性共同推动了Java函数式编程能力,与Stream API结合显著简化集合操作,使代码更简洁高效。

m0_74177281的博客 1174
上一篇: Java中抽象类与接口的区分方法及final关键字
下一篇: String,String Buffer 与 String Builder三者的区别
至学者
博客等级 码龄9年 180粉丝 773原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值