一、抽象类的基本概念
1.抽象类定义
普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类除了不能实例化对象之外,类的其他功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
2.抽象类的声明
abstract class 类名{
//抽象类
}
3.抽象方法
abstract class 类名{
//抽象类
public abstract void 方法名();//抽象方法,只声明而未实现
}
4.抽象类的规范
在抽象类的使用中有以下原则:
- 抽象类本身是不能直接进行实例化操作的,即:不能直接使用关键字new完成;
- 抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类;
- 一个抽象类必须被子类所继承,被继承的子类(如果不是抽象类)则必须覆写(重写)抽象类中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类);
- 抽象类可以有构造方法,子类对象实例化的时候的流程与普通类的继承是一样的,都是要先调用父类中的构造方法(默认是无参的),之后再调用子类自己的构造方法。