返回

直击关键:理解 Class extends 和 implements 的异同

前端

导言

在 Java 面向对象编程的世界中,继承和实现是两个至关重要的概念,而 extends 和 implements 关键词正是这两个概念的基石。本文将为你揭示 extends 和 implements 的异同,让你对 Java 中的继承和实现有更深刻的认识。

extends:继承的艺术

extends 关键词用于创建一个子类,使其继承父类的属性和方法。子类可以访问父类中未声明为 private 的属性和方法,并可以重写父类的方法以实现自己的行为。

implements:实现的承诺

implements 关键词用于实现一个接口,接口是一组方法声明的集合,不包含任何实现细节。实现接口意味着子类必须提供接口中所有方法的实现。

关键区别:继承与实现

  • 继承:子类从父类继承属性和方法,是一种 "is-a" 关系,例如:狗是动物。
  • 实现:子类实现接口中的方法,是一种 "can-do" 关系,例如:狗可以吠叫。

实际应用:代码示例

class Animal {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    @Override
    public String getName() {
        return "汪汪!我是" + super.getName();
    }
}

interface Speakable {
    void speak();
}

class Dog implements Speakable {
    @Override
    public void speak() {
        System.out.println("汪汪!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        animal.setName("小动物");
        System.out.println(animal.getName()); // 输出:小动物

        Dog dog = new Dog();
        dog.setName("小白");
        System.out.println(dog.getName()); // 输出:汪汪!我是小白

        Speakable speakable = new Dog();
        speakable.speak(); // 输出:汪汪!
    }
}

结论

extends 和 implements 是 Java 中两个重要的关键词,用于实现继承和实现。继承是一种 "is-a" 关系,子类从父类继承属性和方法;实现是一种 "can-do" 关系,子类实现接口中的方法。掌握 extends 和 implements 的使用,将帮助你更好地构建复杂且可重用的 Java 程序。