码农知识堂 - 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

  • 相关阅读:
    全球回收标准GRS认证 难不难?
    假期如何控制孩子视力?推荐视力康复师分享的护眼灯
    数据中心电力运维,这次真包教包会!
    Python(13)正则表达式简述
    分类模型计算混淆矩阵
    云计算安全的新挑战:零信任架构的应用
    详解 Calico 三种模式(与 Fannel 网络对比学习)
    DC-1靶场渗透测试实验整理
    零信任产生的历史背景
    面向对象设计与分析(42)工厂方法模式
  • 原文地址:https://blog.csdn.net/m0_71259890/article/details/126261063
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号