抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。
抽象类和抽象方法的原则如下:
(1)抽象类必须使用abstract修饰符来修饰;抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。
定义抽象方法只需要在普通方法上增加abstract修饰符,并把普通方法的方法体(也就是方法后括号括起来的部分)全部去掉,并在方法后增加分号即可。例如:public abstract void test(); 定义了一个抽象方法。
(2)抽象类不能被实例化,无法用new关键字来调用抽象类的构造器创建抽象类的实例。即使抽象类里不包含抽象方法,这个抽象类也不能创建实例。
(3)抽象类里可以包含和普通类相同的成员,可以包含属性、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类、枚举类六种成分。抽象类的构造器不能用于创建实例,主要用于被其子类调用。
(4)含有抽象方法的类(包括直接定义了一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法;以及实现了一个接口,但没有完全实现接口包含的抽象方法三种情况)只能被定义成抽象类。