抽象类和抽象方法定义及讲解?

首先说抽象类:
(1)抽象类只能作为其他类的基类,它不能直接实例化,对抽象类不能使用new 操作符。

(2)抽象类中可以包含抽象成员,但非抽象类中不可以。

(3)如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员。
Java 中声明抽象类时需要使用abstract 关键字,具体语法格式如下:
举例:定义抽象类Base
抽象类和抽象方法定义及讲解?
再说抽象方法:
(1)抽象方法必须声明在抽象类中。

(2)抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号。

(3)声明抽象方法时,不能使用static 和private 修饰符。

(4)当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供具体的实现。
举例:我们先定义一个抽象类包含抽象方法:
抽象类和抽象方法定义及讲解?
再写一个实现类,需要重写上面的play()方法:
抽象类和抽象方法定义及讲解?
就是说abstract可以用于定义抽象类,也可以用于定义抽象方法。抽象类是一种不可以被实例化的类。抽象类中一般含有抽象方法(在声明方法时,加上abstract 关键字),当然也可以有具体实现。继承类只有实现抽象类的所有抽象方法后才能被实例化。
需要注意的是,抽象类可以有构造方法,也可以包含静态方法(static),访问权限也不受限制。