在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用于类实现接口,类必须实现接口中的所有方法。
