码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java面向对象8——接口(内含IDEA中有关创建接口的创建说明)


    接口

    • 一、前言
    • 二、概述
    • 三、简单记忆
    • 四、代码格式
      • 1.格式
      • 2.示例
      • 3.IDEA创建接口
    • 五、成员特点
      • 1.成员变量
      • 2.构造方法
      • 3.成员方法
    • 六、接口的实现
      • 1.概述
      • 2.格式
      • 3.注意点
    • 七、使用说明
      • 1. 接口不能实例化
      • 2. 接口的子类
      • 3.类和接口的实现
      • 4.接口与接口的多继承
    • 八、思考题
    • 九、结语

    一、前言

    上文讲述了有关抽象类和抽象方法的知识点,本文会讲解有关接口的知识点

    二、概述

    上一次我们说了抽象方法的存在是因为父类可以抽取子类中的共性方法,但是共性方法内实现方法不同所以要将共性方法写成抽象方法,那么如果子类中有一个“另类”不需要这个方法的话,我们就无法使用抽象方法了,而是要使用接口,哪个子类需要用,就继承该接口

    三、简单记忆

    例如还是有三个人ABC,工作都是程序员,到了中午吃饭的时候了,A和B都去干饭了,但是C说不行我不吃饭,敲代码使我快乐,存在子类不调用该抽象方法的情况时,那么此时无法将“吃”提取到父类做抽象方法了,但是如果写两变一样的代码又使得代码不简洁,那么将吃定义为接口,有这个行为的子类就去执行接口

    四、代码格式

    1.格式

    interface 接口名称{
        // 抽象方法
    }
    
    • 1
    • 2
    • 3

    2.示例

    public interface Eat {
        public abstract void eat();
    }
    
    
    • 1
    • 2
    • 3
    • 4

    3.IDEA创建接口

    首先依然先创建模块,再创建包,再包下新建类

    在这里插入图片描述
    一般我们创建类选择第一个Class,如果 要创建接口要选择第二个Interface

    在这里插入图片描述

    可以看到我们就成功创建了一个接口

    在这里插入图片描述

    接口的图标和class是不同的,我们放大看一下,有这个标志意味着创建成功

    在这里插入图片描述

    五、成员特点

    1.成员变量

    • 只能是常量
    • 默认修饰符:public static final

    2.构造方法

    无构造方法

    3.成员方法

    • 只能是抽象方法
    • 默认修饰符:public abstract

    六、接口的实现

    1.概述

    类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同

    2.格式

    使用 implements 关键字

    class 类名 implements 接口1,接口2,接口3...{
    
    }
    
    • 1
    • 2
    • 3

    3.注意点

    1. 必须重写实现的全部接口中所有抽象方法

    2. 如果一个类实现了接口,但是没有重写完全部接口的全部抽象方法,这个类也必须定义成抽象类

    我们用IDEA来演示一下
    在这里插入图片描述
    IDEA给出了我们两个解决方案:要么将该类变为抽象类,要么实现接口(Inter)中的方法在这里插入图片描述
    我们选择实现方法
    在这里插入图片描述
    可以看到,要实现接口中的方法才可以,这也是我们常用的解决方法

    七、使用说明

    1. 接口不能实例化

    在这里插入图片描述
    可以这么理解:接口代表的是某一种状态,而不是个体,如果实例化,代码会报错
    我们来看IDEA给出的解决办法


    这里的实现方法是后面会讲到的匿名内部类知识点,暂时先了解一下即可

    2. 接口的子类

    接口的子类要么是抽象类,要么重写接口中所有的抽象方法,这一点和上文讲到的抽象类很相似,可以点击链接查看上一篇文章【Java面向对象8——抽象类和抽象方法(知识点+使用方法)】

    3.类和接口的实现

    类与接口之间的关系是多实现的,一个类可以同时实现多个接口

    public class Student extends Person implements Study , Exercise{
    
        public Student(String name, int age) {
    
            super(name, age);
        }
    
        @Override
        public void study() {
            System.out.println("学生要学习");
        }
    
        @Override
        public void exercise() {
            System.out.println("学生要锻炼身体");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4.接口与接口的多继承

    接口继承接口就是把其他接口的抽象方法与本接口进行了合并

    public interface LearnCoding {
        void coding();
        void test();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    public interface LearnMath {
        void exercise();
        void test();
    }
    
    • 1
    • 2
    • 3
    • 4
    public interface Student extends LearnCoding ,LearnMath  {
        void test();
    }
    
    • 1
    • 2
    • 3

    八、思考题

    读者可以思考一下然后在评论区写出自己的答案,标准答案会在下一篇文章中公布

    如果一个接口中,有10个抽象方法,但是我在实现类中,只需要用其中一个,该怎么办?

    九、结语

    接口的使用非常广法,在实际开发中也很重要,如果想要检测一下自己的学习成果可以阅读这两篇文章(含图解)
    【基础版练习:Java练习题——抽象类、方法以及接口】
    【进阶版练习:Java练习题——接口和抽象类综合题】

  • 相关阅读:
    「Cpolar」内网穿透实现在外远程连接MongoDB数据库【端口映射】
    网络I/o编程模型11 netty常用的3种线程模型
    记录 UniApp开发中遇到的坑
    如何用 Sysbench 测试 TiDB
    python三高问题分析
    【前端工程化】nuxt项目,asyncData方法不触发的原因排查
    分析java.lang.IncompatibleClassChangeError
    【树莓派】了解wiringPi库、控制继电器
    【进击的JavaScript|高薪面试必看】JS基础-作用域和闭包
    全网最全95道MongoDB面试题1万字详细解析
  • 原文地址:https://blog.csdn.net/Alita233_/article/details/126763770
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号