Java-接口

kk3TWT Lv2

有些方法是多个类应该共有的,但是这些类可能不满足继承关系(或这些方法不应该被继承),此时可以使用接口抽象化这些方法

  • 使用 **interface **关键字定义
  • 不能实例化
  • 实现接口方法的类使用 implements 关键字表示
  • 接口的实现类要么实现接口中的所有方法,要么是一个抽象类
1
2
3
4
5
6
7
8
9
10
11
12
// 接口示例
public interface newInterface {
public void add(int a, int b);
}

// 接口实现类示例
public class Main implements newInterface {
@Override
public void add(int a, int b) {
System.out.printf("%d + %d = %d", a, b, a+b);
}
}

一个类可以实现一个接口,也可以实现多个接口,也可以在继承一个类的同时实现多个接口

接口中的成员

  • 成员变量:只能是常量,默认修饰符为 public static final
  • 构造方法:无,因为接口不能创建对象,而且也不需要为成员变量赋值
  • 成员方法:默认为抽象方法,修饰符为 public abstract

JDK 8之后,接口中可以定义带有方法体的成员方法

JDK 9之后,接口中可以定义私有成员方法

接口的继承

接口可以继承自一个父接口,也可以继承自多个父接口,但是如果实现了最小的子接口,就需要实现它的所有父接口的方法

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 父接口 Interface1.java
public interface Interface1 {
public void add(int a, int b);
public void showResult();
}

// 父接口 Interface3.java
public interface Interface3 {
public void showInfo();
}

// 继承自上面两个父接口的子接口 Interface2.java
public interface Interface2 extends Interface1, Interface3 {
public void add(int a, int b, int c);
public void equal(int a, int b);
}

// 实现子接口 Interface2 的类 Impl.java
public class Impl implements Interface2{
@Override
public void add(int a, int b, int c) {
System.out.println("a+b+c=" + (a+b+c));
}

@Override
public void add(int a, int b) {
System.out.println("a+b=" + (a+b));
}

@Override
public void equal(int a, int b) {
System.out.println(a == b);
}

@Override
public void showResult() {
System.out.println("result is good...");
}

@Override
public void showInfo() {
System.out.println("info...");
}
}

因为接口 Interface2 继承自 Interface1Interface3 ,所以当类 Impl 实现 Interface2 时,就需要实现它所有父接口的方法

  • 标题: Java-接口
  • 作者: kk3TWT
  • 创建于 : 2026-04-05 18:52:06
  • 更新于 : 2026-04-05 19:03:05
  • 链接: https://kk-is-very-happy.online/posts/5951da65/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
Java-接口