一、抽象类
有些方法是抽象的,没有实际工作的方法, 我们可以把它设计成一个抽象方法,比如draw(画画),不能实例化对象。包含抽象方法的类我们称为 抽象类(abstract class)。
1.语法规则
abstract class Shape {
abstract public void draw();
}
(1)在 draw 方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体(没有 { }, 不能执行具体代码)。
(2)对于包含抽象方法的类, 必须加上 abstract 关键字表示这是一个抽象类。
2.注意事项
- 抽象类不能直接实例化。
Shape shape = new Shape();
// 编译出错
Error:(30, 23) java: Shape是抽象的; 无法实例化
- 抽象方法不能是 private 的。
abstract class Shape {
abstract private void draw();
}
// 编译出错
Error:(4, 27) java: 非法的修饰符组合: abstract和private
- 抽象类中可以包含其他的非抽象方法, 也可以包含字段. 这个非抽象方法和普通方法的规则都是一样的, 可以被重写,也可以被子类直接调用。
abstract class Shape {
abstract public void draw()