【Java】 Java中的“implements”与“extends”:何时使用?有何不同?

>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具
>
> (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
> 
>  下载地址:https://www.alipan.com/s/x6fqXe1jVg1
>

基本原理

在Java编程中,我们经常会遇到面向对象编程(OOP)的概念,它是一种设计和组织代码的方法。面向对象编程的核心概念之一是继承,它允许我们创建新的类,这些类是现有类的修改或扩展版本。Java提供了两种主要的方式来实现继承:extends关键字和implements关键字。

extends

extends关键字用于实现类的继承。当我们说一个类“继承”另一个类时,意味着新类(子类)继承了现有类(父类)的属性和方法。子类可以添加新的属性和方法,也可以重写(override)父类的方法。

implements

implements关键字用于实现接口。接口是一组抽象方法的集合,它定义了类必须实现的行为,但不提供实现细节。一个类通过implements关键字实现一个或多个接口,这意味着它必须提供接口中所有方法的具体实现。

示例代码

示例1:类的继承
// 父类
class Animal {
    void eat() {
        System.out.println("动物吃东西");
    }
}

// 子类
class Dog extends Animal {
    void bark() {
        System.out.println("狗叫");
    }
}

// 运行结果
public class TestInheritance {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat(); // 继承自Animal类
        myDog.bark(); // Dog类特有的方法
    }
}
示例2:接口的实现
// 接口
interface Flyable {
    void fly();
}

// 实现接口的类
class Bird implements Flyable {
    public void fly() {
        System.out.println("鸟在飞翔");
    }
}

// 运行结果
public class TestInterface {
    public static void main(String[] args) {
        Bird myBird = new Bird();
        myBird.fly(); // 实现了Flyable接口的fly方法
    }
}
示例3:多重继承(通过接口)
// 接口1
interface Swimmable {
    void swim();
}

// 接口2
interface Runable {
    void run();
}

// 实现多个接口的类
class Fish implements Swimmable, Runable {
    public void swim() {
        System.out.println("鱼在游泳");
    }

    public void run() {
        System.out.println("鱼在陆地上跑");
    }
}

// 运行结果
public class TestMultipleInterfaces {
    public static void main(String[] args) {
        Fish myFish = new Fish();
        myFish.swim(); // 实现了Swimmable接口的swim方法
        myFish.run(); // 实现了Runable接口的run方法
    }
}

注意事项

  1. 单一继承:Java不支持类的多重继承,即一个类不能继承多个类。这是为了避免在继承层次结构中出现歧义和复杂性。
  2. 多重接口实现:Java允许一个类实现多个接口,这提供了一种方式来实现多重继承的效果,但接口不能包含状态(即属性)。
  3. 抽象类:如果一个类不能被实例化,或者它包含抽象方法,它可以被声明为抽象类。抽象类也可以被extends,但不能被implements
  4. 默认方法:从Java 8开始,接口可以包含默认方法,这为接口的实现提供了一些灵活性。

结论

extendsimplements在Java中扮演着不同的角色,它们各自解决不同的问题。extends用于类的继承,允许新类继承现有类的属性和方法。implements用于接口的实现,强制类提供接口中定义的所有方法的具体实现。理解这两个关键字的区别和用途对于编写清晰、可维护的Java代码至关重要。通过合理使用继承和接口,我们可以创建灵活、可扩展的代码架构。

>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具
>
> (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
>
> 下载地址:https://www.alipan.com/s/x6fqXe1jVg1
>

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值