理解**抽象类(Abstract Class)**可以从“它是什么、为什么需要它、怎么用”三个层次来看。
抽象类 = 不完整的类,用来被继承,而不是直接用。
new 出来使用new,只能被其他类继承可以把它想象成:
“一个还没画完的图纸,规定了整体结构和一部分实现,剩下的留给子类完成。”
假设有很多“动物”:
abstract class Animal {
void breathe() {
System.out.println("呼吸");
}
abstract void sound(); // 由子类实现
}
子类:
class Dog extends Animal {
void sound() {
System.out.println("汪汪");
}
}
✅ 抽象类:
抽象方法就像一种“契约”:
你继承我,就必须实现这些方法
否则编译器直接报错。
new 抽象类() ❌)| 对比点 | 抽象类 | 接口 |
|---|---|---|
| 是否能有实现 | ✅ 可以有 | ❌(Java 8 前) |
| 成员变量 | ✅ | ❌(常量) |
| 继承关系 | 单继承 | 多实现 |
| 设计目的 | “是什么” | “能做什么” |
一句话:
抽象类描述“事物的本质”,接口描述“能力的契约”
✅ 适合用抽象类当:
❌ 不适合:
抽象类是“半成品的类”,用来抽取共性、约束子类,是面向对象中“复用 + 规范”的核心工具。
如果你愿意,我可以用生活例子 / Python / C++ / 面试角度再讲一版。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。