抽象类能不能继承非抽象类
时间: 2023-12-06 16:36:34 浏览: 259
抽象类不能直接继承非抽象类,但是抽象类可以继承非抽象类的子类。这是因为抽象类是一种特殊的类,它不能被实例化,只能被继承。而非抽象类是可以被实例化的,因此抽象类不能直接继承非抽象类。但是,如果一个非抽象类的子类继承了一个抽象类,那么这个子类就可以被当做抽象类来使用,也就是说,这个子类可以不实现抽象类中的抽象方法,而将这个责任交给它的子类来实现。
举个例子,假设有一个非抽象类Animal,它有一个子类Dog,而Dog又继承了一个抽象类Pet,那么Dog就可以被当做抽象类来使用,也就是说,Dog可以不实现Pet中的抽象方法,而将这个责任交给它的子类来实现。
```java
public class Animal {
// ...
}
public class Dog extends Animal {
// ...
}
public abstract class Pet extends Dog {
public abstract void play();
}
public class Cat extends Pet {
@Override
public void play() {
// 实现play方法
}
}
```
阅读全文