ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

面向对象-接口

2026/8/14 15:51:13 拓冰建站 浏览量
面向对象-接口

一、接口的定义以及使用

1、接口:是一个引用数据类型,是一种标准和规范

2、关键字

a、interface 接口

public interface 接口名{}

b、implements 实现

实现类 implements 接口名{}

3、使用流程

(1)定义接口

public interface 接口名{}

(2)实现

public class 实现类名 implements 接口名{}

(3)使用

a、实现类实现接口

b、重写接口中的抽象方法

c、创建实现类对象(接口不能直接new对象)

d、调用重写的方法

二、接口中的成员

2.1、抽象方法

1、定义格式

public abstract 返回值类型 方法名(形参);

2、注意

不写 public abstract默认也有

3、使用:

a、定义实现类,实现接口

b、重写抽象方法

c、创建实现类对象,调用重写的方法

//接口 public interface USB { public abstract void open(); String close(); } //实现类 public class Mouse implements USB{ @Override public void open() { System.out.println("打开鼠标"); } @Override public String close() { return "关闭鼠标"; } } //测试类 public class Test { public static void main(String[] args) { Mouse mouse = new Mouse(); mouse.open(); String result = mouse.close(); System.out.println(result); } }

2.2、默认方法

1、格式

public default 返回值类型 方法名(形参){

方法体

return 结果

}

2、使用

a、定义实现类,实现接口

b、默认方法可以重写,也可以不重写

c、创建实现类对象,调用默认方法

2.3、静态方法

1、 定义格式

public static 返回值类型 方法名(参数){

方法体

return 结果

}

2、使用:接口名直接调用

2.4、成员变量

1、格式

public static final 数据类型 变量名 = 值

2、相关知识点:final

final代表最终的,被它修饰的变量,不能二次赋值,可以视为常量

3、特点:不写public static final 默认也有

4、使用:接口名直接调用

5、注意

a、被static final修饰的成员变量需要手动赋值

b、习惯上将被tatic final修饰的成员变量名大写

//接口的定义 public interface USB { static final int NUM1 = 100; int NUM2 = 200; // int NUM3; 需要初始化值 public default void methodDef() { System.out.println("我是默认方法"); } public static void methodSta() { System.out.println("我是静态方法"); } } //实现类的定义 public class Mouse implements USB{ @Override public void methodDef(){ System.out.println("我是重写默认方法"); } } //测试类的定义 public class Test { public static void main(String[] args) { Mouse mouse = new Mouse(); mouse.methodDef(); USB.methodSta(); System.out.println(USB.NUM1); } }

三、接口的特点

1、接口可以多继承 ->一个接口可以继承多个接口

public interface InterfaceA extends InterfaceB,InterfaceC{};

2、接口可以多实现 -> 一个实现类可以实现一个或多个接口

public class InterfaceImpl implements InterfaceA,interfaceB{}

3、一个子类可以继承一个父类的同时,实现一个或多个接口

public class Zi extends Fu implements InterfaceA,InterfaceB{}

4、注意:

a、继承也好,实现接口也罢,只要是父类中或者接口的抽象方法,子类或实现类都要重写。

b、当一个类实现多个接口时,如果接口中的抽象方法有重名并且参数一致,只需要重写一次。

c、当一个类实现多个接口时,如果多个接口中默认方法有重名的,且参数列表一样,必须重写一次默认方法

public interface A { public void method(); //抽象方法没有方法体 } public interface B { public void method(); } public class Impl implements A,B { //只需重写一次即可 @Override public void method() { System.out.println("我是重写之后的方法"); } }

四、接口和抽象类的区别

1、相同点:

a、都位于继承体系的顶端,用于被其它类实现或继承

b、都不能new

c、都包含抽象方法,其子类或者实现类都必须重写这些抽象方法

2、不同点:

a、抽象类:一般作为父类使用,可以有成员变量、构造方法、成员方法、抽象方法等。

b、接口:成员单一。一般抽取接口,抽取的都是方法,视为功能的大集合

c、类不能多继承,但是接口可以