Avatar ·

Java中的implements和extends:何时使用及区别?

大家好!我开始学习Java,但一直搞不清extends和implements这两个关键字之间的区别。它们似乎都用于继承,但什么时候该用哪个呢? 我写了一段小代码,但它无法编译,我感觉自己混淆了概念: ```java class Animal { void eat() { System.out.println("吃"); } } interface Pet { void play(); } // 这里我不确定 class Dog extends Animal implements Pet { // 尝试重写接口中的方法 void play() { System.out.println("玩球"); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.eat(); dog.play(); } } ``` 错误:Dog中的play()方法没有重写Pet中的方法,因为它不是public。我改成public后,还是不完全理解: 1. 为什么对Animal类我用了extends,而对Pet用了implements? 2. 能不能反过来做?