在Java中,extends
和implements
是用于类和接口的关键字,它们有不同的用途和意义。以下是它们的区别:
extends
- 用途:
extends
关键字用于表示继承(Inheritance)。它用于一个类继承另一个类,或者一个接口继承另一个接口。 - 应用场景:
- 类继承类: 当一个类继承另一个类时,子类会获得父类的属性和方法。子类可以重写(override)父类的方法,也可以添加新的方法和属性。
- 接口继承接口: 一个接口可以继承另一个接口,从而获得父接口的所有抽象方法。
- 限制: Java是单继承的语言,一个类只能继承一个父类,但可以继承多个接口。
示例:
class Animal {void eat() {System.out.println("This animal eats food.");}
}class Dog extends Animal {void bark() {System.out.println("The dog barks.");}
}
在这个例子中,Dog
类继承了Animal
类,所以Dog
类可以调用Animal
类的eat()
方法。
implements
- 用途:
implements
关键字用于表示实现(Implementation)。它用于一个类实现一个或多个接口。 - 应用场景: 当一个类实现接口时,它必须提供接口中所有抽象方法的具体实现。
- 限制: 一个类可以实现多个接口,即一个类可以使用多个
implements
关键字来实现多个接口。
示例:
interface Animal {void eat();
}interface Pet {void play();
}class Dog implements Animal, Pet {public void eat() {System.out.println("The dog eats food.");}public void play() {System.out.println("The dog plays.");}
}
在这个例子中,Dog
类实现了Animal
和Pet
接口,因此它必须提供eat()
和play()
方法的具体实现。
总结
extends
用于类与类之间(或接口与接口之间)的继承关系。implements
用于类实现接口,类必须实现接口中的所有方法。