java面向对象学习--抽象类
原文链接:https://www.cnblogs.com/Time25/p/19803757.html
1
2
3
4
5
6
7
8
9
10
11
12
13 class Person {
public void run() { … }
}
class Student extends Person {
public void run() { … }
}
class Teacher extends Person {
public void run() { … }
}
由于多态的存在,子类可以覆写父类的方法,但是如果父类的方法没有任何用处,目的是为了让子类可以覆写,不可以去掉执行语句,比如Person里的public void run(….){}不可以把{}去掉,也不可以把run去掉
public abstract void run();抽象类诞生了但是把一个方法声明为abstract,表示它是一个抽象方法,本身没有实现任何方法语句。因为这个抽象方法本身是无法执行的,所以,Person类也无法被实例化。编译器会告诉我们,无法编译Person类,因为它包含抽象方法。必须把Person类本身也声明为abstract,才能正确编译它:
1
2
3
4 abstract class Person {
public abstract void run();
}
如果一个类有抽象方法,那么这个类就一定要是抽象类,抽象类是无法实例化的
Person p = new Person(); // 编译错误
// TRAINING LOG · 第 37 / 76 篇训练记录 · 成文于 2026.03.31 · 夜间 21:23
本文是原创文章,采用CC BY-NC-SA 4.0许可协议,完整转载请注明来自FMAN720 / ALGO LOG
