定义:
一般情况下,类是用来实例化对象的。但在某些情况下,定义一些从未实例化对象的类是有意义的。这样的类就是抽象类。
用关键字abstract修饰的类称为abstract类(抽象类)。
例如:abstract class A {
… …
}
特点:
- 对于抽象类,不能直接实例化对象,即不能使用new运算符创建该类的对象,只能先创建其子类,由子类创建对象
- 抽象类可以声明对象,作为子类对象的 上转型对象
- 和普通的类相比,抽象类里可以有抽象方法。也可以没有抽象方法。
- 对于abstract方法,只允许声明,不允许实现,也就是只定义相应的方法头,而没有体内容
例如:abstract double getArea( ); - 抽象方法不允许使用static、final修饰。
- 抽象类里面可以有抽象方法,也可以没有没有抽象方法,但含有抽象方法的类一定是抽象类。
- 抽象超类的所有具体子类都必须为超类的抽象方法提供具体实现,即实现抽象超类的所有抽象方法。在这儿说的具体子类就是不是抽象类的一般类。
- 抽象类的子类也可以是抽象类,子类是抽象类时不必实现抽象超类的所有抽象方法。