码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaSE | 接口


    • 浅谈接口知识点
      • 1、interface修饰接口
      • 2、接口当中的成员变量
      • 3、接口的成员方法
      • 4、接口的普通成员方法
      • 5、接口的成员方法的实现
      • 6、接口的静态成员方法
      • 7、接口不能实例化
      • 8、类和接口的关系
      • 9、接口的使用
      • 10、接口当中的静态、实例代码块和构造方法
      • 11、不想重写方法怎么办

    浅谈接口知识点

    1、interface修饰接口

    interface IStudy {
        
    }
    
    • 1
    • 2
    • 3

    img

    用interface修饰的都叫做接口

    2、接口当中的成员变量

    接口可以有成员变量,其中的成员变量默认public static final 修饰的。

    interface IStudy { 
        int a = 10;
        public static final int b = 10;
    }
    
    • 1
    • 2
    • 3
    • 4

    img

    所以在定义成员变量的时候要赋初始值。

    3、接口的成员方法

    接口也可以有成员方法,他们默认都是public abstract修饰的。

    interface IStudy {
        int a = 10;
        public static final int b = 10;
        public void func();
        public abstract void func2();
        void func3();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    img

    4、接口的普通成员方法

    接口中的普通成员方法是不能有具体的实现的。

    原因很简单,因为普通成员方法都是默认public abstract修饰的,是抽象方法,所以不能有具体的实现。

    img

    5、接口的成员方法的实现

    在接口中如果想要完成对成员方法的实现,必须用default修饰该成员方法。

    interface IStudy {
        //发生编译错误,因为没有具体的实现
        default void func4();
       
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    img

    img

    6、接口的静态成员方法

    接口可以有静态成员方法,但同default修饰的成员方法一样,必须要有方法体。

    img

    img

    在默认情况下,静态成员方法是默认由public修饰的。

    7、接口不能实例化

    接口不能够实例化。

    img

    8、类和接口的关系

    类要想使用接口,用到implements关键字,他们之间的关系称作实现。

    interface IStudy {
        
    }
    class B implements IStudy {
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    img

    9、接口的使用

    接口是可以引用具体实现类的,此时发生的是向上转型。

    interface IChargeLine {
        void ChargeWay();
    }
    class USB implements IChargeLine {
        @Override
        public void ChargeWay() {
            System.out.println("using USB to charge");
        }
    }
    class TypeC implements IChargeLine {
        @Override
        public void ChargeWay() {
            System.out.println("using TypeC to charge");
        }
    }
    
    public class test2 {
        public static void func(IChargeLine iChargeLine) {
            iChargeLine.ChargeWay();
        }
        public static void main(String[] args) {
            func(new TypeC());
            func(new USB());
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    运行结果:

    img

    10、接口当中的静态、实例代码块和构造方法

    在接口当中是不能有静态代码块、实例代码块和构造方法的。

    img

    会发生编译错误。

    11、不想重写方法怎么办

    在实现一个接口之后不想重写方法,可以用抽象类来实现,但是下一个类继承这个抽象类之后要重写所有的方法。

    出来混总是要还的。

    interface IChargeLine {
        void ChargeWay();
    }
    abstract class b implements IChargeLine {
        abstract public void func2();
    }
    class c extends b {
        @Override
        public void ChargeWay() {
            
        }
    
        @Override
        public void func2() {
            
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    img

  • 相关阅读:
    图解-排序算法-选排
    Java优雅解决空指针问题源码级别刨析Optional
    程序员凡尔赛,工作三年晒出5月工资条,直言加班太累了
    VR头显如何低延迟播放8K的RTSP|RTMP流
    无人机镜头稳定的原理和相关算法
    Mysql进阶优化篇01——四万字详解数据库性能分析工具(深入、全面、详细,收藏备用)
    一个 nginx 通过不同域名映射多个前端项目
    844. Backspace String Compare
    bash和sh区别
    基于Qt 多线程(继承自QThread篇)
  • 原文地址:https://blog.csdn.net/m0_71259890/article/details/126261063
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号