在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类
使用关键字abstract
如果Java中的一个方法想要像c++中的函数声明一样只写方法声明而不写方法体,则该方法必须定义为抽象方法,在返回值类型前面加上abstract,此时其所在的类的class前也必须加上abstract,定义为抽象类
抽象类不是具体的,不能直接创建其本身的对象
抽象类的特点
抽象类中可以有具体的方法(有方法体的方法),但是抽象类还是不能直接创建对象。必须有继承,通过多态的方式创建对象
注意:抽象类的每一个子类必须重写抽象类的每一个抽象方法,如果子类不想重写,则这个子类必须定义为抽象类
- 抽象类是可以有构造方法的,用于子类访问父类并对父类成员进行初始化
- 父类中抽象方法的作用就是去限定子类必须重写
- 抽象类可以有构造方法,但由于抽象类并不能用自身创造对象,所以抽象类的构造方法本身不能实例化,用于子类访问父类数据的初始化(前面的super讲过,类似于super的功能)