当前位置:首页 > Java

如何实现接口 java

2026-02-04 21:19:42Java

实现接口的基本语法

在Java中,使用interface关键字定义接口,通过implements关键字让类实现接口。接口默认所有方法为public abstract(可省略),属性为public static final

// 定义接口
interface MyInterface {
    void method1();
    String method2(int param);
}

// 实现接口
class MyClass implements MyInterface {
    @Override
    public void method1() {
        System.out.println("Implemented method1");
    }

    @Override
    public String method2(int param) {
        return "Value: " + param;
    }
}

接口的默认方法和静态方法

Java 8+允许接口包含默认实现(default方法)和静态方法(static方法),前者可以被实现类直接使用或重写,后者通过接口名调用。

interface AdvancedInterface {
    // 抽象方法
    void abstractMethod();

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

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

多接口实现与冲突解决

一个类可以实现多个接口。当多个接口存在同名默认方法时,实现类必须重写该方法以避免冲突,可通过InterfaceName.super.method()调用特定接口的默认实现。

interface InterfaceA {
    default void show() {
        System.out.println("Interface A");
    }
}

interface InterfaceB {
    default void show() {
        System.out.println("Interface B");
    }
}

class MultiImpl implements InterfaceA, InterfaceB {
    @Override
    public void show() {
        // 显式选择调用InterfaceA的实现
        InterfaceA.super.show();
    }
}

接口继承

接口可以继承其他接口(支持多重继承),子接口会继承父接口的所有抽象方法和默认方法。

interface Parent {
    void parentMethod();
}

interface Child extends Parent {
    void childMethod();
}

class ImplClass implements Child {
    @Override
    public void parentMethod() { /* 实现 */ }

    @Override
    public void childMethod() { /* 实现 */ }
}

标记接口与函数式接口

标记接口(如Serializable)不包含任何方法,仅用于标识类特性。函数式接口(@FunctionalInterface)仅包含一个抽象方法,可用于Lambda表达式。

如何实现接口 java

@FunctionalInterface
interface Calculator {
    int calculate(int a, int b);
}

// Lambda实现
Calculator add = (a, b) -> a + b;
System.out.println(add.calculate(2, 3)); // 输出5

分享给朋友:

相关文章

vue如何实现tap

vue如何实现tap

Vue 中实现类似移动端 tap 事件的方法 在 Vue 中可以通过以下几种方式实现类似移动端 tap(轻触)事件的效果: 使用第三方库 安装 v-tap 指令库可以快速实现 tap 事件: np…

java如何写接口

java如何写接口

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

vue如何实现递归

vue如何实现递归

递归组件的实现方法 在Vue中实现递归组件通常用于渲染树形结构或嵌套数据。核心思路是组件在其模板中调用自身,但需注意终止条件以避免无限循环。 定义递归组件 组件需设置name选项,才能在模板中调用自…

java是如何实现跨平台的

java是如何实现跨平台的

Java 跨平台的实现原理 Java 实现跨平台的核心机制基于 “一次编写,到处运行” 的理念,主要通过以下技术实现: 字节码与 JVM Java 源代码编译后生成字节码(.class 文件),而非…

vue如何实现uuid

vue如何实现uuid

生成 UUID 的方法 在 Vue 中生成 UUID 可以通过第三方库或原生 JavaScript 实现。以下是几种常见方法: 使用 uuid 库 安装 uuid 库: npm install u…

vue如何实现confirm

vue如何实现confirm

Vue 实现 Confirm 弹窗的方法 在 Vue 中实现确认弹窗(Confirm)可以通过多种方式,以下是几种常见的方法: 使用浏览器原生 confirm 最简单的实现方式是直接调用浏览器的原生…