理解 Java 抽象类(Abstract Class),可以从“是什么、为什么用、怎么用、和接口的区别”这几个角度来看。
抽象类是用 abstract 修饰的类,它:
new 创建对象)abstract 方法,没有方法体)示例:
abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
// 抽象方法
public abstract void sound();
// 普通方法
public void eat() {
System.out.println(name + "在吃东西");
}
}
核心目的:代码复用 + 规范子类行为
class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void sound() {
System.out.println(name + "汪汪叫");
}
}
Animal a = new Dog("小狗");
a.sound();
a.eat();
通常用 父类(抽象类)引用指向子类对象
| 对比点 | 抽象类 | 接口 |
|---|---|---|
| 关键字 | abstract class |
interface |
| 能否实例化 | 不能 | 不能 |
| 方法 | 可有抽象/非抽象 | 默认抽象(Java 8+ 可有 default) |
| 成员变量 | 普通变量 | 常量(public static final) |
| 继承关系 | 单继承 | 多实现 |
| 设计目的 | “是不是”(IS-A) | “能不能做”(CAN-DO) |
抽象类是对一类事物的共性抽象,既规定“必须做什么”,又可以提供“怎么做”的基础实现。
如果你愿意,我也可以用 生活例子 / UML图 / 面试题角度 再帮你讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。