1.abstract修饰类,这个类成为抽象类,只能用来声明引用,不能用来创建对象,其子类可以继承后用来创建对象。
2.abstract修饰方法,这个方法称为抽象方法。抽象方法的特点与抽象类类似,只有声明,没有实现;这里的没有方法实现不是指实现为空,而是抽象方法的实现部分用分号代替;同样与抽象类类似,抽象方法的实现可以交给继承的子类去完成。
注意:抽象方法一定存在于抽象类中,但抽象类中不一定包含有抽象方法。当抽象类中有抽象方法,子类在继承抽象类的时候,需要覆盖用完整的实现去覆盖抽象方法(多态)。并且抽象类中是可以存在构造方法的,抽象类本身不能使用,其子类继承覆盖后可以使用。(多态)
3.抽象类的作用
我们知道所有的动物都可以吃和睡(共性),但是不同动物的习性不同(特性),导致了吃和睡的方式各有千秋。比方说我们有一个Animal类,定义了吃和睡的方法;有两个子类猫头鹰和兔子都继承自Animal类,可以调用Animal类的吃和睡的方法;我们知道兔子是食草动物,而猫头鹰是吃虫子的;再有就是两者睡眠习惯也是不同的;所以我们在Animal类中肯定不能定义具体的一个实现;而是定义成抽象方法,让不同的子类继承并重写不同的实现。我们知道一个包含抽象方法的类必定也是抽象类,这大概就是定义抽象类的意义。