在 Java 里,**抽象类(abstract class)**主要用来“把共性的东西抽出来,让子类去实现差异部分”。说白了,它干这几件事最有用:
把多个类相同的代码放到抽象类里,子类只写不同的部分。
abstract class Animal {
void eat() {
System.out.println("吃东西");
}
abstract void sound(); // 子类必须实现
}
class Dog extends Animal {
void sound() {
System.out.println("汪汪");
}
}
✅ 好处:不用每个类都写 eat()
用 abstract 方法逼子类必须做什么。
abstract class Shape {
abstract double area();
}
任何 Shape 的子类(圆、矩形)都必须算面积。
✅ 好处:防止“忘了实现关键方法”
抽象类里写好流程,把某一步留给子类。
abstract class Game {
void play() {
start();
doGame();
end();
}
abstract void doGame();
}
子类只关心 doGame(),流程不用管。
✅ 好处:流程统一,逻辑清晰
Animal a = new Dog();
a.eat();
a.sound();
✅ 好处:写框架、接口、工具类非常爽
Animal a = new Animal(); // ❌ 报错
抽象类本身不能 new,只能被继承。
| 场景 | 用啥 |
|---|---|
| 有共同代码 | 抽象类 |
| 只定规范 | 接口 |
| 需要构造方法 | 抽象类 |
| 多继承 | 接口 |
Java 抽象类用来“抽共性 + 定规范 + 控流程”,是写可维护代码的利器。
如果你愿意,我也可以用真实项目例子(比如支付、登录、订单)给你讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。