Java入门16——接口

news/2024/11/15 0:31:04 标签: java, 开发语言, 学习, intellij-idea

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


一、接口

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{
    @Override
    public 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,另一个接口的名字{
    @Override
    public void breathe() {
        System.out.println("Bird");
    }

    重写另一个接口当中的方法~
}

二、继承和接口的对比

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

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


今天就到这里啦~

加油


http://www.niftyadmin.cn/n/5752502.html

相关文章

高分辨率定时器 HRTIIM

1初学者重要提示 高分辨率定时器可以产生多达 10 路高分辨率信号。它主要用数字电源、照明,电源耗材,太阳能逆 变器和无线充电等应用场合,当然,也可以作为通用目的。 ◆ HRTIM 模块化的架构允许产生独立或者叠加波形。通过带的时序控制单元和各种外部事件的配合, 可以产…

【话题讨论】AI赋能电商:创新应用与销售效率的双轮驱动

目录 引言 一、AI技术在电商中的创新应用 1.1 购物推荐 1.2 会员分类 1.3 商品定价 1.4 用户体验 总结 二、AI技术提高电商平台销售效率 2.1 订单处理 2.2 物流配送 2.3 产品流转效率 2.4 库存管理和订单管理效率 2.5 实际案例分析 三、挑战和未来发展趋势 3.1…

Linux服务器下oracle自动rman备份的实现

一、概述 为确保oracle数据库数据的安全和一致性,一般我们都需要利用备份手段进行数据库的备份。在oracle数据库中,rman因其强大的功能和完善的手段,成为数据库备份的首选。Linux服务器中,要实现自动脚本备份,一般都是…

vue3中使用swiper的方法及版本兼容问题

Swiper官方文档 https://swiper.com.cn/ 前言 如果使用vue3开发尽量避免swiper6及以下版本(踩的坑很多),我使用的swiper7.4.1 开发中vue总是会遇到版本兼容性问题,每次都要调半天,很头疼....废话不多说,直接上方法及代码。 1.首先…

游戏引擎学习第三天

视频参考:https://www.bilibili.com/video/BV1XTmqYSEtm/ 之前的程序不能退出,下面写关闭窗体的操作 PostQuitMessage 是 Windows API 中的一个函数,用于向当前线程的消息队列发送一个退出消息。其作用是请求应用程序退出消息循环,通常用于处…

java八股-垃圾回收机制-垃圾回收算法,分代回收,垃圾回收器

文章目录 垃圾回收算法引用计数法可达性分析算法 jvm垃圾回收算法标记清除算法标记整理算法复制算法本章总结 JVM中的分代回收本章总结 JVM有哪些垃圾回收器?1.串行垃圾收集器2.并行垃圾收集器3.CMS(并发)垃圾收集器本章小结 详细聊一下G1垃圾…

在卷积神经网络中真正占用内存的是什么

在卷积神经网络(CNN)中,占用内存的主要部分包括以下几个方面: 1. 模型参数(Weights and Biases) CNN 中的权重和偏置(即模型的参数)通常是占用内存的最大部分。具体来说&#xff1…

蓝桥杯每日真题 - 第7天

题目:(爬山) 题目描述(X届 C&C B组X题) 解题思路: 前缀和构造:为了高效地计算子数组的和,我们可以先构造前缀和数组 a,其中 a[i] 表示从第 1 个元素到第 i 个元素的…