【java基础——interface接口】

JAVA基础

interface接口


文章目录

  • JAVA基础
    • 接口 Interface


接口 Interface

接口是一种特殊的抽象类,它定义了一组抽象方法和常量,并且不包含具体实现。

  1. 只允许声明静态常量:必须且默认为 public static final 。
  2. 声明抽象方法:必须且默认为 public abstract ,没有具体实现。实现接口的类必须实现接口中所有的抽象方法。
  3. 默认方法(JDK 8+):在接口中有默认实现的方法。可以使用 default 关键字来定义默认方法。默认方法可以被实现接口的类继承或重写。
  4. 静态方法(JDK 8+):静态方法是在接口中有静态实现的方法。可以使用 static 关键字来定义静态方法。静态方法只能在接口内部使用,不能被实现接口的类继承。
  5. 私有方法(JDK 9+):私有方法是在接口中有私有实现的方法。可以使用 private 关键字来定义私有方法。私有方法只能在接口内部使用,不能被实现接口的类继承或重写。

default 方法:更新接口时添加的新方法,允许旧类实现接口而不实现该方法。

  • 可以直接在接口内实现,供没有定义的旧类直接使用。若类中实现了该方法则覆盖。
  • 如果类实现了多个接口且拥有同名 default 方法:
    • 两个接口若存在继承关系,调用时优先使用子类方法。
    • 否则,必须重写子类 default 方法,通过 super 关键字明确实现哪个接口:

public interface DemoInterface {/*** 常量 默认为 public static final.*/int MY_INTEGER = 10;String MY_STRING = "Hello";/*** 抽象方法.默认为 public abstract*/void abstractMethod();/*** 默认方法(JDK 8+).默认方法可以被实现接口的类继承或重写。*/default void defaultMethod() {staticMethod();System.out.println("Doing something...");}/*** 静态方法(JDK 8+).静态方法只能在接口内部使用,不能被实现接口的类继承。默认 public*/static void staticMethod() {System.out.println("Doing something static...");}/*** 私有方法(JDK 9+):私有方法只能在接口内部使用,不能被实现接口的类继承或重写。*/private void somePrivateMethod() {System.out.println("Doing something privately...");}
}public class DemoInterfaceImpl implements DemoInterface {@Overridepublic void abstractMethod() {System.out.println(MY_INTEGER);System.out.println(MY_STRING);defaultMethod();}/*** 10* Hello* Doing something static...* Doing something...*/@Testpublic void test() {abstractMethod();}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript—DOM(文档对象模型)

目录 DOM是什么? DOM有什么作用? 一、事件 理解事件 事件怎么写(要做什么就写什么)? 实战演练 1、页面加载完毕以后,打印一句话 2、如果有一个a标签,并给其添加一个点击事件 3、事件默…

SPI3+DMA外设驱动-TFTLCD初始化

前言 (1)本系列是基于STM32的项目笔记,内容涵盖了STM32各种外设的使用,由浅入深。 (2)小编使用的单片机是STM32F105RCT6,项目笔记基于小编的实际项目,但是博客中的内容适用于各种单片…

Jmeter(二十九):Jmeter常用场景梳理

一、每秒钟固定调用次数 如果想控制每秒发送请求数量,仅仅通过线程数与循环次数是不够的,因为这只能控制发送总数,而要控制每秒发送数量,需要线程数与常数吞吐量控制器的搭配使用,这种场景在性能测试中使用不多。 例如每秒钟调用30次接口,那么把线程数设置为30,将常数…

基于Java+SpringBoot+Vue前后端分离社区医院管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

SpringCluod深入教程

1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案&#…

SpringCloud入门——微服务调用的方式 RestTemplate的使用 使用nacos的服务名初步(Ribbon负载均衡)

目录 引出微服务之间的调用几种调用方法spring提供的组件 RestTemplate的使用导入依赖生产者模块单个配置的情况多个配置的情况没加.yaml的报错【报错】两个同名配置【细节】 完整代码config配置主启动类controller层 消费者模块进行配置restTemplate配置类controller层 使用na…

使用ffmpeg将WebM文件转换为MP4文件的简单应用程序

tiktok网上下载的short视频是webm格式的,有些程序无法处理该程序,比如roop程序,本文介绍了如何使用wxPython库创建一个简单的GUI应用程序,用于将WebM文件转换为MP4文件。这个应用程序使用Python编写,通过调用FFmpeg命令…

【Go 基础篇】探索Go语言中Map的神奇操作

嗨,Go语言的学习者们!在编程世界中,Map是一个强大而又有趣的工具,它可以帮助我们高效地存储和操作键值对数据。Map就像是一本字典,可以让我们根据关键字(键)快速找到对应的信息(值&a…

流媒体内容分发终极解决方案:当融合CDN与P2P视频交付结合

前言 随着互联网的发展,流媒体视频内容日趋增多,已经成为互联网信息的主要承载方式。相对传统的文字,图片等传统WEB应用,流媒体具有高数据量,高带宽、高访问量和高服务质量要求的特点,而现阶段互联网“尽力…

Java之API详解之Object类的详细解析

4 Object类 4.1 概述 tips:重点讲解内容 查看API文档,我们可以看到API文档中关于Object类的定义如下: Object类所在包是java.lang包。Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类…

四层负载均衡的NAT模型与DR模型推导 | 京东物流技术团队

导读 本文首先讲述四层负载均衡技术的特点,然后通过提问的方式推导出四层负载均衡器的NAT模型和DR模型的工作原理。通过本文可以了解到四层负载均衡的技术特点、NAT模型和DR模型的工作原理、以及NAT模型和DR模型的优缺点。读者可以重点关注NAT模型到DR模型演进的原…

phpspreadsheet导出excel自动获得列,数字下标

安装composer require phpoffice/phpspreadsheetuse PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Border;$spreadsheet new Spreadsheet(); $sheet $spreadsheet->getActiveSheet();//从65开&a…