可以。
在 Java 中,抽象类是可以包含普通方法(具体方法)的,这是它与**接口(Java 8 之前)**的一个重要区别。
抽象类中可以包含:
抽象方法
abstract 修饰普通方法(具体方法)
abstract class Animal {
// 抽象方法
public abstract void sound();
// 普通方法
public void sleep() {
System.out.println("动物在睡觉");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("狗在叫");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // 狗在叫
dog.sleep(); // 动物在睡觉
}
}
| 特性 | 抽象类 | 接口(Java 8+) |
|---|---|---|
| 抽象方法 | ✅ | ✅ |
| 普通方法 | ✅ | ✅(default 方法) |
| 成员变量 | ✅ | 只能是常量 |
| 构造方法 | ✅ | ❌ |
✅ 抽象类可以包含普通方法,而且这是它非常重要的用途之一。
如果你愿意,我也可以结合 接口中的 default 方法 或 抽象类设计场景 再深入讲讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。