关键字abstract:抽象的
1.可以用来修饰:类、方法
2.具体的:
abstract修饰类:抽象类
此类不能实例化
抽象类中一定又构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)
开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作---> 抽象的使用前提:继承性
abstract修饰方法:抽象方法
抽象方法指方法的声明,没有方法体
包含抽象方法的类,一定是一个抽象类,反之:一个抽象类中可以没有抽象方法的
若子类重写了父类的所有的抽象方法,此类可以实例化
若子类没有重写父类的所有的抽象方法,则此子类也是一个抽象类,需要使用abstract修饰。
3.注意点:
- abstract 不能用来修饰属性、构造器等结构
- abstract 不能用来修饰私有方法、静态方法、final的方法、final的类
4.abstract的应用举例:
【举例一】
public abstract class Vehicle{//交通工具 public abstract double calcFuelEfficiency();//计算燃料效率的抽象方法 public abstract double calcTripDistance();//计算行驶距离的抽象方法 } public class Truck extends Vehicle{ public double calcFuelEfficiency(){ //写出计算卡车的燃油效率的具体方法 } public double calcTripDistance(){ //写出计算卡车行驶距离的具体方法 } } public class RiverBarge extends Vehicle{ public double calcFuelEfficiency(){ //写出计算驳船的燃料效率的具体方法 } public double caleTripDistance(){ //写出计算驳船行驶距离的具体方法 } }
【举例二】
abstract class GeometricObject{//几何图形类 public abstric double findArea(); } class Circle extends GeometricObject{ private double radius; public double findArea(){ return 3.14 * radius *radius; } }
【举例三】
IO流中设计到的抽象类:
InputStream/OutputStream / Reader / Writer .在其内部定义了抽象的read()、write()方法。