news 2026/10/3 16:28:39

接口基础知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接口基础知识

一、接口的概念

接口使用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 classinterface
构造方法有没有
成员变量普通成员变量主要是常量
方法抽象方法、普通方法抽象方法、默认方法、静态方法等
关系继承关系: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. 面向接口编程:面向接口调用,降低耦合,提高扩展能力。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 16:25:54

Android内存泄漏就这样产生了:从Base URL改到TaoToken排查一次OOM

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华