可以的。Java 中的超类(父类、基类)完全可以是抽象类(abstract class),而且这是非常常见和推荐的用法。
abstract 修饰的类叫抽象类// 抽象超类
abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
// 抽象方法
abstract void sound();
// 普通方法
void eat() {
System.out.println(name + " is eating");
}
}
// 子类
class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
void sound() {
System.out.println("Wang Wang");
}
}
| 特性 | 抽象类 | 接口 |
|---|---|---|
| 能否有构造方法 | ✅ | ❌ |
| 能否有普通方法 | ✅ | Java 8+ 可以有 default |
| 成员变量 | 可以有 | 只能是常量 |
| 单继承 | ✅(只能继承一个) | 可实现多个 |
✅ Java 超类可以是抽象的
✅ 抽象类常作为超类使用
✅ 不能 new 抽象类,但可以用子类对象
如果你愿意,我也可以讲「抽象类 vs 接口怎么选」或「抽象类在框架中的实际应用」。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。