【进阶】面向对象之接口

news2025/1/19 7:53:19

文章目录

  • 为什么要有接口
  • 如何定义和使用一个接口
    • 练习
  • 接口里面的成员特点
  • 接口和类之间的关系

为什么要有接口

  • 接口:就是一种规则

如何定义和使用一个接口

  • 接口用关键字interface来定义
    public interface 接口名{}
  • 接口不能实例化
  • 接口和类之间是实现关系,通过implements关键字表示public class 类名 implements 接口名 {}
  • 接口的子类(实现类)
    要么重写接口中的所有抽象方法
    要么是抽象类

注意1: 接口和类的实现关系,可以单实现,也可以多实现。public class 类名 implements 接口名1,接口名2 {}

注意2: 实现类还可以在继承一个类的同时实现多个接口,public class 类名 extends 父类implements 接囗名1,接口名2{}

练习

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

接口里面的成员特点

  • 成员变量
    只能是常量
    默认修饰:public static final
  • 构造方法
    没有
  • 成员方法
    只能是抽象方法
    默认修饰符:public abstract

IDK7以前:接口中只能定义抽象方法。
IDK8的新特性:接口中可以定义有方法体的方法。
JDK9的新特性:接口中可以定义私有方法。

接口和类之间的关系

  • 类和类的关系
    继承关系,只能单继承,不能多继承,但是可以多层继承
  • 类和接口的关系
    实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
  • 接口和接口的关系
    继承关系,可以单继承,也可以多继承

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

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

相关文章

集合的基础操作

1.集合中元素没有顺序,且不会重复,输入的数据若有重复则会去重 2.集合的格式为:变量名{##,##,##} 3.集合中元素的添加格式为:变量名.add(添加的元素) 4.集合中元素的取出格式(取出元素后,原集合中该元素没有了&#…

软件测试学习笔记丨Linux三剑客-grep

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32506 一、简介 1.1 grep命令 grep是一个全局查找正则表达式,并且打印结果行的命令。grep的输入是一个文件或者一个标准输入(stdin),或者是一…

JAVA多线程实现

一、方法总结 Thread类的常用方法 void setName(String name)//将此线程的名称更改为name String getName()//如果不设置名称,则线程默认名称为Thread-0或Thread-1或…就是Thread -? String Thread.currentThread().getName()//获得当前线程名称 …

C++常见的内存错误和解决策略

目录 1.未初始化指针 (Uninitialized Pointer) 2.内存分配未成功却使用了它 3.野指针 (Dangling Pointer) 4.内存泄漏 (Memory Leak) 5.重复释放内存 (Double Free) 6.内存越界访问 (Buffer Overflow) 7.错误的数组删除方式 (Mismatched Delete) 8.栈内存溢出 (Stack O…

24/10/14 算法笔记 循环神经网络RNN

RNN: 一种专门用于处理序列数据的神经网络,它能够捕捉时间序列中的动态特征。RNN的核心特点是其循环连接,这允许网络在不同时间步之间传递信息,从而实现对序列数据的记忆和处理能力。 应用的场景: 自然语言处理(NLP&…

这款懂人情世故的大模型强得可怕!

这款孵化于首期书生大模型实战营,基于 InternLM2 开发的项目——天机,更懂人情世故的大模型,这 2 天在社区可谓有点火!相关内容在小红书上至少收获了六千多点赞与收藏 ! 你是否还在苦苦挣扎于各种应酬,四处寻找“高情商…

MySQL-04.DDL-数据库操作

一.数据库的操作 DDL(data definition language):数据定义语言,用来定义数据库对象(数据库、表) DDL分为两类:1.数据库的DDL语句,主要是针对数据库的定义,增加,删除,使用 2.表结构的DDL语句&…

大数据-160 Apache Kylin 构建Cube 按照日期构建Cube 详细记录

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

TuyaOS开发学习笔记(4)——BLE开发搭建环境、编译烧写(NRF52832)

一、搭建环境 1.1 官方资料 TuyaOS 1.2 安装Visual Studio Code 官网下载:https://code.visualstudio.com 百度网盘:https://pan.baidu.com/s/1R62HT0PVmVzMwOXtCmIQwA 提取码:g9fb 1.3 安装Tuya Wind IDE 启动 Visual Studio Code 后&am…

windows10 输入法突然变成繁体字。

1.在任务栏的输入法上切换到设置页面 2. 进入语言选项 3.浮动在桌面上? 4. 点击繁体或简体切换。

IWO-Kmeans聚类 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法

智能优化 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法 目录 智能优化 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法效果一览基本介绍模型描述程序设计参考资料效果一览 基本介绍 侵入性杂草优化 (IWO) 聚类, 与 K-means 和 GMM 高斯混合模型的比较。 入侵杂草优…

jupyter notebook显示左侧内容方法(版本7也可以用)

1 安装 Nbextensions pip install jupyter_contrib_nbextensions如果安装不成功, jupyter安装Nbextensions后不出现Nbextensions选项 就使用以下语句 conda install -c conda-forge jupyter_contrib_nbextensions然后设置下 jupyter contrib nbextension insta…

kali在git外网的代理

如果发现用git无法直接连接到某些外网项目。可以配置一下代理。 vi /etc/proxychains4.conf 主机可以开一下机场代理&#xff0c;查一下主机的地址和代理所开的端口&#xff0c;我这里是7890 写上代码&#xff1a; socks5 <your ip> <your port> 写上之后wq保…

java内存管理

Java内存管理主要涉及Java虚拟机&#xff08;JVM&#xff09;对内存的分配与回收过程。这一过程确保了Java程序在运行时能够有效地使用内存资源&#xff0c;同时避免了手动管理内存所带来的复杂性和潜在错误。 内存分配&#xff1a; 堆&#xff08;Heap&#xff09;&#xff1a…

【C++】拆分详解 - list

文章目录 一、list的介绍二、list的使用1. 构造2. 迭代器3. 增 删 查 改4. list 迭代器失效问题5. list 排序问题 三、list的模拟实现0. 整体框架1. 迭代器类1.1 operator->1.2 临时对象1.3 const_iterator 2. list类2.1 begin / end2.2 构造 / 析构 / 拷贝构造 / 赋值重载2…

谷歌浏览器如何防范恶意网站和广告

在日常使用互联网时&#xff0c;我们经常会遇到一些恶意网站或广告&#xff0c;这些不仅会影响我们的浏览体验&#xff0c;还可能对我们的设备安全造成威胁。为了帮助大家更好地防范这些问题&#xff0c;本文将详细介绍如何在谷歌浏览器中采取有效的措施来防范恶意网站和广告。…

Grafana+ Node+ Prometheus对服务器进行性能监控

目录 一、Grafana 1.把Grafana压缩文件上传到Linux服务器 2.安装服务 3.启动服务 4.访问 二、Node 1.上传node_exporter-1.5.0.linux-amd64.tar到服务器 2.解压 3.启动服务 三、Prometheus 1.上传prometheus-2.43.0.linux-amd64.tar到服务器 2.解压 3.进入prometh…

【Linux】ComfyUI和SD WebUI之PYTHON环境共享,模型共享,LORA等公共资源共享。最大限度节约空间

需求 一般玩AI绘图都会装ComfyUI和SD WebUI。而且这俩的模型、lora等都是一致的。为了避免空间的浪费&#xff0c;一般会采用共享数据的方式。而且共享的数据可以任意指定分区&#xff0c;这让挂载NAS共享空间成为可能&#xff0c;实现多绘画机ComfyUI和SD WebUI共享资源。 实…

SpringCloud学习记录|day4

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 网关 微服务下&#xff0c;好多不同地址和端口&#xff0c;而前端只知道8080&#xff0c;这怎么解决&…

不起眼的错误参数导致remote-debugging-port不生效

引言 背景 由于有一些小需求需要控制浏览器批量执行请求&#xff0c;最简单的方案是使用 DrissionPage 来实现&#xff0c;遂有了下面的问题。 问题 通过命令行传入 remote-debugging-port9111 参数&#xff0c;但是调试了一天&#xff0c;一直不生效&#xff0c;各种方法都…