一、定义
在类中声明一个方法,这个方法没有实现体,是一个“空”方法,这样的方法就叫抽象方法,使用修饰符“abstract”,当一个类有抽象方法的时候,该类就必须声明为抽象类。
二、实例
1、含有抽象方法的类,必须定义为抽象类
为Animal增加一个抽象方法eat(),并且把Animal声明为abstract的。Cat,Dog是Animal的子类,继承了Animal的属性和方法。但是各自的吃的东西不一样,所以继承Animal以后,这些子类必须提供不一样的eat()实现。
2、可以没有抽象方法的抽象类
Animal类可以在不提供抽象方法的前提下,声明为抽象类,一旦某个类被声明为抽象类,就不能被直接实例化。
三、抽象类和接口的区别
区别1:子类只能继承一个抽象类,不能继承多个,子类可以实现多个接口
区别2:抽象类可以定义public、protected、package、private;静态和非静态属性,final和非final属性;但是接口中声明的属性,只能是public,静态,final的,即便没有显式的声明。
注意:抽象类和接口都可以有实现方法,接口中的实体方法,叫做默认方法。