Java入门16——接口

embedded/2024/11/14 12:31:32/

我们今天来学习接口,和继承有点像,话不多说,开始正题~


一、接口

1.为什么要用接口

接口其实和继承很像,但是继承是 is-a 的关系,接口是 has-a 的关系,而且继承只能是一对一的关系,但是接口可以一对多,子类可以有多个接口,会方便许多,而且也体现出了多态性,更灵活

2.接口的语法——interface

首先我们来看一下,如何定义一个接口,示例如下:

java">public interface Animal {}

这样,我们就定义出了一个名字为Animal的一个接口

3.接口使用——implements

我们知道接口既然是 has-a 的关系,我们就一定会在接口里面抽象出其它类里面的共有属性(方法),比如说动物都会呼吸,那么我们就可以这样写:

java">public interface Animal {void breathe();
}

那么为什么不写成具体的方法呢?答案是接口当中不能具体的实现一个方法,除非用default修饰 

接口中的方法默认是public和abstract(抽象)的,所以在定义方法时可以省略这些修饰符。接口中的变量默认是public 、static和final(常量)

那么我们再定义一个子类来接上这个接口~

java">public class Bird implements Animal{@Overridepublic void breathe() {System.out.println("Bird");}
}

大家注意!这里必须要重写接口中的方法!!!如果不重写,就把当前类改为抽象类~

那么我们怎么调用这个方法呢?我们写一个test类来测试一下~

java">public class test {public static void main(String[] args) {Bird bird = new Bird();bird.breathe();}
}

这样我们就可以调用了

如果想继承多个接口,它的格式是这样的:

java">public class Bird implements Animal,另一个接口的名字{@Overridepublic void breathe() {System.out.println("Bird");}重写另一个接口当中的方法~
}

二、继承和接口的对比

此处我们用一个表格给大家演示~

看完表格就比较容易区分继承和接口,下次用的时候也会有选择的用了


今天就到这里啦~

加油


http://www.ppmy.cn/embedded/137492.html

相关文章

华为私有接口类型hybrid

华为私有接口类型hybrid Tip&#xff1a;hybrid类型&#xff0c;简称混合型接口。 本次实验模拟2层网络下 vlan10 vlan20 不能互访&#xff0c;vlan10 vlan20 同时可以访问vlan100 sw1配置如下&#xff1a; <Huawei>sy [Huawei]sys sw1 [sw1]vl ba 10 20 100 [sw1]int…

241113.学习日志——[CSDIY] [ByteDance] 后端训练营 [00]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

PHP动物收容所管理系统-计算机设计毕业源码94164

摘 要 利用PHP语言和相关技术&#xff0c;设计和实现一个高效、可靠的动物收容所管理系统。该系统将提供系统用户、动物信息管理、领养申请处理、志愿者管理、医疗记录管理、捐赠信息、系统管理等功能&#xff0c;旨在促进动物收容所管理工作的便捷和透明化。本研究首先介绍了动…

mac终端使用pytest执行iOS UI自动化测试方法

1、安装pytest-repeat插件&#xff1a; pip install pytest-repeat 2、安装allure-pytest插件&#xff1a; pip install allure-pytest 3、打开终端&#xff1a; pytest -q -s -ra --count100 test_open_stream.py --alluredir./report/CXL -q&#xff1a;表示“quiet mo…

kafka是如何处理数据乱序问题的?

1.数据有序 生产者发送的数据&#xff0c;单分区内可以做到有序&#xff0c;多分区无法保证&#xff0c;除非把多个分区的数据拉取到消费端&#xff0c;进行排序&#xff0c;但是这样做效率很低&#xff0c;不如直接设置一个分区 2.数据乱序 1&#xff09;kafka在1.x版本之前…

Unity3D实现视频和模型融合效果

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示如下👉二、VideoPlayer播放视频(一)👉2-1、Hieraechy面板右键创建videoPlayer👉2-2、Assets面板右键创建RenderTexture👉2-3、把设置好的RenderTexture拖到videoPlayer里面还有本地视频视频�…

重构代码之取消临时字段

在代码重构中&#xff0c;临时字段是一种常见的反模式。临时字段指的是一个类的字段在部分方法中会被赋值或使用&#xff0c;但在其他很多方法中却未被使用&#xff0c;导致代码的维护性和可读性变差。这种设计往往表明字段的存在是偶然的或局部的&#xff0c;而非类的真正属性…

DOM NodeList 探索

DOM NodeList 探索 引言 在Web开发中,文档对象模型(DOM)是核心概念之一。DOM提供了一种以树形结构表示HTML或XML文档的方法,允许开发者通过JavaScript等脚本语言操作文档的结构、样式和内容。在DOM中,NodeList是一个重要的接口,它表示一个节点的集合,通常是由查询DOM树…