十四、Java抽象类

定义:抽象类不可以用于创建对象。抽象类可以包含方法,这些方法将在具体的子类中实现。
语法:

public abstract class 类名{ }

注意

  • 抽象方法不能包含在非抽象类中。(如果抽象父类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象的。)
  • 抽象类是不能使用new操作符来初始化的。只有抽象类的非抽象子类才可以被初始化。
  • 包含抽象方法的类必须是抽象的。(可以定义一个不包含抽象方法的抽象类)。
  • 不能使用new操作符从一个抽象类创建一个实例,但是抽象类可以用作于一种数据类型。eg:

MyObject[ ] objects = new MyObject[10];
然后可以创建一个MyObject的实例,并将它的引用赋值给数组,
objects[0] = new Circle();

(来自:java语言程序设计(基础篇)原书第10版p428)

补充:

  • 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
  • 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

eg:
十四、Java抽象类
十四、Java抽象类
十四、Java抽象类