当前位置: 首页 > article >正文

【java】implements

什么是 implements

implements 是 Java 中的一个关键字,用来表示一个类实现某个接口。你可以把接口想象成一个任务清单,而实现接口的类就是完成任务的人

  • 接口:定义了一组任务(方法),但没有具体说明怎么做。

  • 实现接口的类:必须完成接口中定义的所有任务(实现所有方法)。


举个例子

1. 接口是任务清单

假设有一个任务清单(接口),里面有两个任务:

  1. makeSound():发出声音。

  2. eat():吃东西。

java

interface Animal {
    void makeSound(); // 任务 1:发出声音
    void eat();       // 任务 2:吃东西
}
2. 实现接口的类是完成任务的人

现在有两个类,Dog 和 Cat,它们都接受了这个任务清单(实现了 Animal 接口),并用自己的方式完成任务。

java

class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("汪汪汪!"); // 狗的任务 1:发出声音
    }

    @Override
    public void eat() {
        System.out.println("狗在吃骨头!"); // 狗的任务 2:吃东西
    }
}

class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("喵喵喵!"); // 猫的任务 1:发出声音
    }

    @Override
    public void eat() {
        System.out.println("猫在吃鱼!"); // 猫的任务 2:吃东西
    }
}
3. 使用这些类

java

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat = new Cat();

        dog.makeSound(); // 输出 "汪汪汪!"
        dog.eat();      // 输出 "狗在吃骨头!"

        cat.makeSound(); // 输出 "喵喵喵!"
        cat.eat();      // 输出 "猫在吃鱼!"
    }
}

输出

汪汪汪!
狗在吃骨头!
喵喵喵!
猫在吃鱼!

你的代码中的 implements Serializable

在你的代码中,User 类实现了 Serializable 接口:

java

import java.io.Serializable;

public class User implements Serializable {
    // 类的实现
}
Serializable 接口的作用
  • Serializable 是一个特殊的接口,它没有任何任务(方法)。

  • 它的作用是告诉 Java:“这个类的对象可以被保存到文件通过网络传输。”

  • 如果没有实现 Serializable,Java 会拒绝保存或传输这个类的对象。


为什么要用 implements

  1. 定义规范

    • 接口定义了一组规范(任务),而实现接口的类必须遵循这些规范。

  2. 提高灵活性

    • 不同的类可以用不同的方式实现同一个接口。例如,Dog 和 Cat 都用不同的方式完成了 makeSound() 任务。

  3. 支持多继承

    • Java 不支持一个类继承多个类,但可以通过实现多个接口来达到类似的效果。


总结

  • implements 表示一个类实现某个接口

  • 接口就像任务清单,实现接口的类必须完成所有任务(实现所有方法)。

  • 在你的代码中,User 类实现 Serializable 接口是为了支持对象的保存和传输。


http://www.kler.cn/a/560172.html

相关文章:

  • 原子操作、写回策略、缓存一致性问题、内存序详解
  • Vue面试2
  • 三、《重学设计模式》-单例模式
  • Python - 代码片段分享 - Excel 数据实时写入方法
  • uniapp打包生产证书上架IOS全流程
  • 【PDF预览】使用iframe实现pdf文件预览,加盖章
  • Redis7——基础篇(七)
  • JDK安装步骤
  • 机器人学习模拟框架 robosuite 支持强化学习和模仿学习 (1) 快速入门
  • 使用 LROPoller 处理 Azure 文档分析时的常见问题及解决方案
  • 猿创征文 【高级篇】Java 进阶之JVM实战
  • MATLAB中fft函数用法
  • 数据结构与算法-图论-最短路-单源最短路的建图方式
  • 从vue底层原理上解释ref和reactive的区别
  • 【NLP 24、实践 ⑤ 计算Bert模型中的参数数量】
  • 2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
  • 网络安全产品
  • 数据安全_笔记系列02:国密算法(商用密码算法)详解
  • 测试工程师玩转DeepSeek之Prompt
  • 为什么java从json中获取值有数据类型,而从xml中获取值没有数据类型?