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. 能不能反过来做?