抽象类实现了接口的全部方法,那么继承抽象类的子类为什么可以不用实现抽象类的方法了呢?
时间: 2024-03-21 20:34:55 浏览: 68
当一个抽象类实现了接口的全部方法时,继承该抽象类的子类可以不用实现抽象类的方法,是因为子类已经继承了抽象类的方法实现。抽象类是为了提供一种通用的实现方式,而接口是为了定义一组规范。当一个抽象类实现了接口的全部方法,子类继承抽象类后,已经具备了接口规范的实现,因此不需要再重复实现抽象类的方法。
举个例子,假设有一个抽象类Animal,它实现了接口Eatable的全部方法,接口Eatble定义了一个eat()方法。抽象类Animal中已经实现了eat()方法的具体实现,子类Dog继承了Animal,那么Dog类就已经具备了eat()方法的实现,不需要再重复实现。
```java
interface Eatble {
void eat();
}
abstract class Animal implements Eatble {
public void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
// 不需要再实现eat()方法,已经继承了Animal的实现
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 输出:Animal is eating
}
}
```
阅读全文