【Java8新特性】- 接口中默认方法修饰为普通方法

Java8新特性 – 接口中默认方法修饰为普通方法

😄生命不息,写作不止
🔥 继续踏上学习之路,学之分享笔记
👊 总有一天我也能像各位大佬一样
🏆 一个有梦有戏的人 @怒放吧德德
🌝分享学习心得,欢迎指正,大家一起学习成长!

【Java8新特性】- 接口中默认方法修饰为普通方法

接口中默认方法修饰为普通方法

在java8之前,接口类可以定义变量和方法,变量必须要public、static、final修饰,方法需要public、abstract修饰。方法由子类来实现。接口方法默认是public,如果多加了public就会显示冗余的public。

【Java8新特性】- 接口中默认方法修饰为普通方法

在jdk8之后,java就能够通过default和static修饰,直接编写方法体,无需子类去实现。当我们直接在接口类中编写带方法体的方法时,idea就会提示接口抽象方法不能有方法体。

【Java8新特性】- 接口中默认方法修饰为普通方法

default、static修饰

当我们使用default修饰的时候,idea就会提示不支持此方法。

【Java8新特性】- 接口中默认方法修饰为普通方法

我们就将其设置为java8级别,之后就能用了。

【Java8新特性】- 接口中默认方法修饰为普通方法

这样就都能用了

案例代码

package com.jdk8.demo.method;

/**
 * @author: lyd
 * @description: 声明接口
 * @Date: 2022/10/4
 */
public interface InterfaceMethod {
    void PubMethod();

    default void DefaultMethod() {
        System.out.println("使用default修饰");
    }

    static void StaticMethod() {
        System.out.println("使用static修饰");
    }
}

在实现类中,一定需要实现的是没有方法体的,修饰了static是不可以子类去实现的。
这里就实现未实现的方法。

package com.jdk8.demo.method.impl;

import com.jdk8.demo.method.InterfaceMethod;

/**
 * @author: lyd
 * @description: 实现类
 * @Date: 2022/10/4
 */
public class InterfaceMethodImpl implements InterfaceMethod {
    @Override
    public void PubMethod() {
        System.out.println("public方法");
    }
}

测试

package com.jdk8.demo.method;

import com.jdk8.demo.method.impl.InterfaceMethodImpl;

/**
 * @author: lyd
 * @description: 测试
 * @Date: 2022/10/4
 */
public class Itest {
    public static void main(String[] args) {
        InterfaceMethod interfaceMethod = new InterfaceMethodImpl();
        interfaceMethod.PubMethod();
        interfaceMethod.DefaultMethod();
        InterfaceMethod.StaticMethod();
    }
}

运行结果

【Java8新特性】- 接口中默认方法修饰为普通方法

感谢观看!

Original: https://www.cnblogs.com/lyd-code/p/16754205.html
Author: 怒放吧德德
Title: 【Java8新特性】- 接口中默认方法修饰为普通方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574008/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 领导:谁再用redis过期监听实现关闭订单,立马滚蛋!

    在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;…

    Linux 2023年5月28日
    084
  • 三少玩Linux之FreeBSD安装与简单配置,与win7共存安装方法

    还是先安装win7, 这里就不说了; 这个是FreeBSD安装视频: https://www.bilibili.com/video/BV1vk4y1d7jt。 记得先安装windo…

    Linux 2023年6月14日
    0104
  • 一道诡异的考试题

    题目: 给定$a$张黑牌,$b$白牌,甲,乙两人按以下顺序抽牌: 甲抽一张,乙抽一张,然后弃去一张,然后重复以上过程。 先抽到黑牌者胜,求甲和乙获胜的概率$mod 10045358…

    Linux 2023年6月6日
    082
  • 带你了解我们的“彩虹运维技术栈社区”

    关于我们 彩虹象征着美好、童话、幻想,所要追求的成功,必历经挫折之后才能达到目标。我们每个人都需经历学习的枯燥、工作和生活的辛苦,不经历风雨又怎能见彩虹? TTR,全称Taste …

    Linux 2023年6月7日
    085
  • NO.6 HTML+CSS 笔记

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    093
  • 手把手教你在Linux系统下安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1. 下载并安装MySQ…

    Linux 2023年6月14日
    097
  • USB转双串口产品设计-RS232串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    090
  • 相关powerLink教程、配置方法等

    openPowerLink的开发小组早已经解散,所以有些资料都可以在官网上下载到; 这也是最后一次更新了。其中相关powerlink的教程均放在百度网盘里,链接:https://p…

    Linux 2023年6月14日
    0104
  • MySQL SUBSTRING_INDEX截取字符串

    一、SUBSTRING_INDEX 二、示例 Original: https://www.cnblogs.com/woods1815/p/16368248.htmlAuthor: …

    Linux 2023年6月13日
    078
  • 线段树扫描线(二)矩形周长 以hdu1828为例

    还是老规矩,传送门 hdu 1828 依然不做过多解释,给出n个矩形,求这些矩形组合而成的图形的周长(中间镂空的部分也算) 还是像扫面线(一)一样,自下而上扫描, 我们先只考虑横线…

    Linux 2023年6月6日
    094
  • C++11

    1.新增不需要赋值即可初始化 //C++98 int a = 1; int* p1 = new int[3]; Date d1(2022, 9, 26); //C++11 Date…

    Linux 2023年6月13日
    0103
  • 【vue 引入cdn加载失败 解决办法】

    在项目index.html中放上 生产环境下自动加载 src下可以把文件放到自己服务器,本地加载 Original: https://www.cnblogs.com/Slience…

    Linux 2023年6月8日
    0102
  • Spring 4 集成 redis 实现缓存 一

    随着Web项目的复杂程度逐渐增加,可能会涉及诸如高并发、海量数据查询的的业务场景也逐渐增多;若频繁的操作数据库,会触发数据库的I/O瓶颈,因此需要加入缓存,尽量减少直接操作数据库的…

    Linux 2023年6月14日
    086
  • Python代码模板

    #!/usr/bin/env python -*- encoding: utf-8 -*- class ClassName: def __init__(self, arg1, ar…

    Linux 2023年6月14日
    087
  • centos快速搭建nfs共享

    一、nfs服务器端 01.安装nfs服务 yum -y install nfs-utils 02.创建存储目录 mkdir -p /data/2haohr_backup 03.设置…

    Linux 2023年6月6日
    0103
  • Web开发静态资源处理

    Web开发静态资源处理 7.1 静态资源处理 我们要引入前端资源,项目中有许多的静态资源,比如css,js等文件,这个SpringBoot是怎么处理呢? 如果我们是一个web应用,…

    Linux 2023年6月14日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球