接口基础知识

一、接口的概念

接口使用interface关键字定义,它是一种行为规范 / 能力标准,主要用来规定 "某类事物必须具备哪些行为"。

复制代码
public interface 接口名 {
}

接口可以理解为:

  • 制定规则;
  • 定义能力;
  • 不关心具体实现,只关心 "能不能做"。

二、接口的基本定义

复制代码
public interface Flyable {
    // 抽象方法:规定"能飞"
    void fly();
}

在 Java 8 以后,接口中可以包含:

  1. 抽象方法;
  2. 默认方法 default;
  3. 静态方法 static;
  4. 私有方法 private。

但初学阶段,先掌握最核心的:抽象方法 + 类实现接口。


三、类实现接口

类通过implements关键字实现接口,并必须实现接口中的所有抽象方法。

复制代码
public class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("鸟扇动翅膀飞翔");
    }
}

完整示例

复制代码
public interface Flyable {
    void fly();
}

public class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("鸟扇动翅膀飞翔");
    }
}

public class Plane implements Flyable {
    @Override
    public void fly() {
        System.out.println("飞机依靠发动机飞行");
    }
}

public class TestFly {
    public static void main(String[] args) {
        Flyable f1 = new Bird();
        Flyable f2 = new Plane();

        f1.fly();
        f2.fly();
    }
}

输出:

复制代码
鸟扇动翅膀飞翔
飞机依靠发动机飞行

四、接口的特点

特点 说明
接口不是类 使用interface定义
接口不能创建对象 不能new 接口名()
接口中的方法默认是public abstract 可以不写,但编译后仍然是公共抽象方法
接口中的变量默认是public static final 必须赋值,且不能修改
类实现接口 使用implements
实现类必须实现全部抽象方法 除非是抽象类
一个类可以实现多个接口 implements A, B, C

五、接口中的常量

接口中可以定义常量,格式:

复制代码
public static final 类型 常量名 = 值;

例如:

复制代码
public interface Constants {
    int MAX_COUNT = 100;
    String NAME = "Java";
}

接口里的变量会被自动看作:

复制代码
public static final

所以必须定义时赋值,并且不能修改。


六、接口与抽象类的区别

对比项 抽象类 接口
定义方式 abstract class interface
构造方法 有 没有
成员变量 普通成员变量 主要是常量
方法 抽象方法、普通方法 抽象方法、默认方法、静态方法等
关系 继承关系:extends 实现关系:implements
单继承 / 多实现 类只能单继承 类可以多实现
作用 共性模板 + 部分实现 行为规范、能力标准

七、接口的多实现

一个类可以同时实现多个接口,这是接口最重要的优势之一。

复制代码
public interface Flyable {
    void fly();
}

public interface Swimmable {
    void swim();
}

public class Duck implements Flyable, Swimmable {
    @Override
    public void fly() {
        System.out.println("鸭子飞起来");
    }

    @Override
    public void swim() {
        System.out.println("鸭子游泳");
    }
}

public class TestDuck {
    public static void main(String[] args) {
        Duck duck = new Duck();
        duck.fly();
        duck.swim();
    }
}

八、接口的继承

接口也可以继承接口,并且支持多继承。

复制代码
public interface Flyable {
    void fly();
}

public interface Attackable extends Flyable {
    void attack();
}

public class Bird implements Attackable {
    @Override
    public void fly() {
        System.out.println("鸟飞");
    }

    @Override
    public void attack() {
        System.out.println("鸟攻击");
    }
}

九、面向接口编程

面向接口编程的核心思想是:面向接口调用,不关心具体实现。

例如:

复制代码
public interface USB {
    void work();
}

public class Mouse implements USB {
    @Override
    public void work() {
        System.out.println("鼠标工作");
    }
}

public class Keyboard implements USB {
    @Override
    public void work() {
        System.out.println("键盘工作");
    }
}

public class Computer {
    public void useUSB(USB usb) {
        usb.work();
    }
}

public class TestComputer {
    public static void main(String[] args) {
        Computer computer = new Computer();

        computer.useUSB(new Mouse());
        computer.useUSB(new Keyboard());
    }
}

这里Computer不关心传入的是鼠标还是键盘,只关心它是否符合USB接口规范。


十、本章小结

  1. 接口 :使用interface定义,是行为规范和能力标准。
  2. 抽象方法:接口中主要定义要实现的行为。
  3. 类实现接口 :使用implements,必须实现全部抽象方法。
  4. 多实现:一个类可以实现多个接口。
  5. 面向接口编程:面向接口调用,降低耦合,提高扩展能力。
相关推荐
沐晓时光1 小时前
C语言入门,深入理解指针(1)
c语言·开发语言
AC赳赳老秦1 小时前
OpenClaw 数据引用规范自动生成:为公开数据构建可信来源标注与标准引用体系
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
不才不才不不才2 小时前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro2 小时前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
无忧.芙桃2 小时前
C++语言原理与实践(十):vector类的底层实现
开发语言·c++·算法
小蒜学长2 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
变与不变8062 小时前
js同步和异步难点重点详解
开发语言·javascript·ecmascript
Dovis(誓平步青云)3 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
旺仔Sec3 小时前
2026年江西省职业院校技能大赛(中职组)应用软件系统开发赛项竞赛样题
java·应用软件系统开发