当前位置:首页 > Java

java如何写接口

2026-01-14 17:20:49Java

定义接口

在Java中,使用interface关键字定义接口。接口可以包含抽象方法、默认方法、静态方法和常量(隐式为public static final)。

public interface MyInterface {
    // 抽象方法(隐式为public abstract)
    void abstractMethod();

    // 默认方法(Java 8+)
    default void defaultMethod() {
        System.out.println("Default method implementation");
    }

    // 静态方法(Java 8+)
    static void staticMethod() {
        System.out.println("Static method in interface");
    }

    // 常量
    String CONSTANT = "Interface Constant";
}

实现接口

类通过implements关键字实现接口,必须实现接口中所有的抽象方法(除非类是抽象的)。

public class MyClass implements MyInterface {
    @Override
    public void abstractMethod() {
        System.out.println("Implemented abstract method");
    }
}

接口的多继承

Java支持接口的多继承,一个类可以实现多个接口,用逗号分隔。

public interface InterfaceA {
    void methodA();
}

public interface InterfaceB {
    void methodB();
}

public class MyClass implements InterfaceA, InterfaceB {
    @Override
    public void methodA() {
        System.out.println("Method A");
    }

    @Override
    public void methodB() {
        System.out.println("Method B");
    }
}

接口的默认方法冲突

如果多个接口有相同的默认方法,实现类必须重写该方法以避免冲突。

public interface InterfaceX {
    default void conflictMethod() {
        System.out.println("InterfaceX default method");
    }
}

public interface InterfaceY {
    default void conflictMethod() {
        System.out.println("InterfaceY default method");
    }
}

public class MyClass implements InterfaceX, InterfaceY {
    @Override
    public void conflictMethod() {
        // 显式调用某个接口的默认方法
        InterfaceX.super.conflictMethod();
    }
}

接口与抽象类的区别

  • 接口不能包含实例字段或构造方法,抽象类可以。
  • 接口支持多继承,抽象类仅支持单继承。
  • 接口的成员默认是public,抽象类可以包含protectedprivate成员。

实际应用示例

接口常用于定义回调、策略模式或服务契约。例如:

java如何写接口

// 定义回调接口
public interface Callback {
    void onComplete(String result);
}

// 使用回调
public class Worker {
    public void doWork(Callback callback) {
        String result = "Work done";
        callback.onComplete(result);
    }
}

// 实现回调
public class Main {
    public static void main(String[] args) {
        Worker worker = new Worker();
        worker.doWork(result -> System.out.println("Result: " + result));
    }
}

标签: 如何写接口
分享给朋友:

相关文章

vue实现按需调用接口

vue实现按需调用接口

Vue 中按需调用接口的实现方法 在 Vue 项目中按需调用接口可以优化性能,避免不必要的网络请求。以下是几种常见实现方式: 使用计算属性触发接口调用 通过计算属性监听数据变化,在需要时调用接口:…

vue实现过期接口拦截

vue实现过期接口拦截

vue实现过期接口拦截的方法 在Vue项目中实现过期接口拦截通常需要结合axios拦截器和后端返回的状态码或自定义字段。以下是几种常见实现方式: 基于HTTP状态码的拦截 当后端返回特定状态码(如4…

react如何访问本地接口

react如何访问本地接口

访问本地接口的方法 在React中访问本地接口通常涉及开发环境配置和跨域问题处理。本地接口可能运行在本地开发服务器(如localhost:3000)或其他端口(如后端服务的localhost:8080…

react中token如何写

react中token如何写

在React中处理Token的方法 使用localStorage或sessionStorage存储Token 将Token存储在浏览器的localStorage或sessionStorage中,便于跨…

react中table判断如何写

react中table判断如何写

判断表格数据为空 在React中判断表格数据是否为空,可以通过检查数据数组的长度来实现。当数据为空时显示提示信息或占位符。 {data.length === 0 ? ( <div>暂…

react如何写快捷键

react如何写快捷键

监听键盘事件 在React中实现快捷键功能,可以通过监听键盘事件来完成。使用useEffect钩子来添加和移除事件监听器。 import { useEffect } from 'react'; f…