java中可以创建专门的类作为父类,这种类被称为抽象类!抽象类的作用有点像模板的作用,目的是根据它的格式来创建和修改新的类。但是并不能直接由抽象类创建对象,只能通过抽象类派生出新的子类,然后再由子类来创建其对象!也就是说,抽象类不能用new关键字来创建实例对象的类,它可以作为父类被它的所有子类所共享。 abstract可以修饰类和方法。
一.abstract修饰类:抽象类
1、抽象类不能被实例化
2、抽象类有构造器(凡是类都有构造器。。)
3、抽象类中可以没有抽象方法。
4、含有抽象方法的类一定是抽象类。
定义抽象类的语法格式如下:
abstract class 类名{
声明成员变量;
返回值的数据类型 方法名 (参数表){
... }
abstract返回值的数据类型 方法名 (参数表); //注释:抽象方法,抽象方法里不能定义方法体,所以用“;”
二.abstract修饰方法:抽象方法
1.没有方法体,且没有{}
2.抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类;
3.若子类继承抽象类,并重写了所有的抽象方法,则子类是一个实体类,即可以实例化;
4.若子类继承了抽象类,没有重写所有的抽象方法,意味着此类中仍有抽象方法,则此类必须被声明为抽象类。不能使用new来创建对象。
说明:
(1)抽象类以abstract来修饰
(2)抽象类中的方法分为两种:一种是带有方法体的普通方法,一种是没有方法体 的“抽象方法”,它是以abstract关键字开头的方法,此方法只声明返回值的数据类型,方法名称与所需的参数,但没有方法体。(3)抽象方法用“;”结尾。
(4)抽象方法必须被子类的方法覆盖,否则子类仍然是抽象的。抽象方法声明中修饰符static与abstract不能同时使用!
(5)抽象类的子类必须实现父类中的所有抽象方法,或者将自己也声明成抽象的。
注意事项:
(1)抽象类是被继承的,所有不能用final修饰,即abstract与final不能同时使用。也就是说,一个类不能既是最终类,又是抽象类。
(2)abstract不能与private、static、final或native并列修饰同一个方法。