当前位置:首页 > Java

java接口如何使用

2026-04-09 04:49:21Java

定义接口

接口使用 interface 关键字定义,仅包含方法声明(无实现)和常量(默认 public static final)。

public interface Animal {
    String TYPE = "生物"; // 常量
    void eat();          // 抽象方法
    default void sleep() { // 默认方法(Java 8+)
        System.out.println("睡觉中");
    }
    static void info() {   // 静态方法(Java 8+)
        System.out.println("这是一个动物接口");
    }
}

实现接口

类通过 implements 实现接口,需重写所有抽象方法,可选择重写默认方法。

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }
}

多接口实现

一个类可实现多个接口,解决Java单继承限制。

public class RobotDog implements Animal, Machine {
    @Override
    public void eat() {
        System.out.println("充电");
    }
    @Override
    public void start() {
        System.out.println("启动");
    }
}

接口继承

接口可继承多个父接口,扩展功能。

java接口如何使用

public interface SmartDevice extends Animal, Machine {
    void connectWifi();
}

接口使用场景

  1. 回调机制:通过接口实现事件监听(如 Runnable)。
  2. 多态:以接口类型引用实现类对象。
    Animal myPet = new Dog();
    myPet.eat(); // 输出"狗吃骨头"
  3. 解耦:定义标准协议,分离实现与调用方。

注意事项

  • Java 8 后接口支持 defaultstatic 方法,前者需实例调用,后者通过接口名调用。
  • 接口不能实例化,但可通过匿名类快速实现。
    Animal cat = new Animal() {
      @Override
      public void eat() {
          System.out.println("猫吃鱼");
      }
    };

分享给朋友:

相关文章

vue调用接口实现退出

vue调用接口实现退出

Vue 调用接口实现退出功能 在 Vue 中实现退出功能通常需要调用后端接口,清除用户登录状态,并跳转到登录页面或其他指定页面。以下是实现步骤: 定义退出接口方法 在 Vue 项目中,通常会在 sr…

react如何使用路由

react如何使用路由

使用 React Router 的基本方法 React Router 是 React 应用中实现路由功能的核心库。以下是基本使用方法: 安装 React Router 依赖包: npm insta…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

react thunk 如何使用

react thunk 如何使用

使用 React Thunk 的基本步骤 安装 Redux 和 Redux Thunk 作为依赖项: npm install redux redux-thunk 在 Redux store 配置中应…

vue实现搜索框接口

vue实现搜索框接口

实现搜索框接口的基本步骤 在Vue中实现搜索框接口需要结合前端输入处理和后端API交互。以下是关键实现方法: 数据绑定与输入处理 使用v-model绑定搜索框输入值: <template&g…

Vue调接口怎么实现

Vue调接口怎么实现

Vue调用接口的实现方法 在Vue中调用接口通常使用axios或fetch等HTTP客户端库,以下是具体实现方式: 安装axios 通过npm或yarn安装axios依赖: npm install…