抽象类通常用来描述一些代表通用概念的类
例如:汽车、火车、轮船等。他们都属于交通工具,而交通工具只是一个抽象概念,因此我们可以定义一个交通工具类,并将该类定义成抽象类
抽象类要使用abstract修饰
抽象方法
- 抽象方法是指用abstract修饰的方法,并且只定义了方法头,并没有方法体和具体的实现
- 抽象方法只能存在于抽象类中,主要用于说明该抽象类具有该功能,但是并没有说明该功能是怎么实现的
- 例如:交通工具都具有“运输”功能但是每个交通工具的运输方式都不相同
特性
- 抽象类只能用作父类,供其他类继承。因此定义抽象类时不能同时使用abstract和final(最终类)
- 抽象类中可以包含抽象方法也可以不包含抽象方法。但是一个类中如果有抽象方法那么这个类必须是抽象类
- 抽象类中可以包含静态方法和构造方法。但是静态方法和构造方法不能是抽象的
- 子类可以实现(重写)父类的抽象方法。如果没有实现父类的抽象方法那么该子类依旧是抽象类
- 抽象类不能被实例化,但是可以创建一个继承该类的匿名内部类
new 抽象类名{ public void 方法名(){方法体} //抽象类中的所有抽象方法都要被实现 }