Java入门16——接口

server/2024/11/14 23:37:36/

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


一、接口

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/server/141965.html

相关文章

Docker的基础使用

一、Docker使用步骤(kali为例) 1.安装Docker: (1)更新系统包索引: sudo apt-get update (2)安装Docker: sudo apt-get install docker.io 2.配置docker源&#xff…

unity基础,点乘叉乘。

简单记录下点乘叉乘&#xff0c;要不每次用完就忘&#xff0c;忘了又查。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TestCrossDot : MonoBehaviour {/// <summary>/// 原点/// </summary>public Transform t…

恒创科技:什么是 RAID 3 ? RAID 3、4 和5之间有什么区别?

RAID 是一种存储数据以提高性能并减少数据丢失的特定技术。您可以根据自己的需求选择多种 RAID 类型。RAID 3 是列表中比较有效的类型之一。本文将重点介绍这种特定的 RAID 技术&#xff0c;并比较 RAID 3、4 和 5。 RAID 3 的定义 RAID 3 是一种特定的磁盘配置&#xff0c;用于…

PyTorch nn.Embedding介绍

nn.Embedding 是 PyTorch 中用于将离散的整数索引(代表类别或符号)转换为连续向量表示的层。这个嵌入层特别适合用于自然语言处理、序列数据、推荐系统、以及生物信息学中的离散符号编码(如氨基酸序列等)等任务。 一、nn.Embedding 的定义和参数 nn.Embedding(num_embedd…

【MIT-OS6.S081笔记1】Chapter1阅读摘要:Operating system interfaces

记录阅读《xv6: a simple, Unix-like teaching operating system》的一些摘要&#xff0c;这是第一章的内容&#xff1a;Operating system interfaces。 fork函数作用&#xff1a;fork创建一个新进程&#xff0c;称为子进程&#xff0c;其内存内容与调用进程&#xff08;称为父…

React Hooks在现代前端开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 引言 React Hooks …

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent初体验(一)

一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将介绍如何…

Java中的泛型

什么是泛型&#xff1f; 限制容器存储的元素类型&#xff0c;用于集合、接口、实现类中 说明&#xff1a;泛型参数在指明时&#xff0c;不可以使用基本数据类型&#xff01;不过可以使用包装类替换 案例1&#xff1a;ArrayList ArrayList<Integer> list new ArrayList…