一、抽象类
定义一个类时,常常需要定义一些成员方法用于描述类的行为特征,但有时这些方法的实现方式是无法确定的(子类继承父类的方法时,父类的方法无法满足子类的实际需求)
针对上述情况,Java提供了抽象方法来满足这种需求。抽象方法是使用abstract关键字修饰的成员方法,抽象方法再定义时不需要实现方法体
语法格式: abstract 返回值类型 方法名称(参数列表);
当一个类包含了抽象方法,该类就是抽象类。但是,一个抽象类不一定具有抽象方法.抽象类和抽象方法一样,必须使用abstract关键字进行修饰
语法格式: abstract class 抽象类名称{
属性;
访问权限 返回值类型 方法名称(参数){ //普通方法
return 返回值;
}
访问权限 abstract 返回值类型 方法名称(参数); //抽象方法
}
抽象类的定义比普通类多了一个或多个抽象方法,其他地方与普通类的组成基本相同
定义规则:1.包含抽象方法的类必须是抽象类
2.声明抽象类和抽象方法都要使用abstract关键字修饰
3.抽象方法只需要声明而不需要实现," { } "都没有
4.如果一个非抽象类继承了抽象类之后,必须重写抽象类中的全部抽象方法
案例:
声明了抽象类Animal,并在Animal类中定义了抽象方法shout( );
在子类Dog中重写了父类Animal的抽象方法shout( );
创建一个测试类进行代码测试,使用dog调用shout( )方法
注意:使用abstract关键字修饰的抽象方法不能使用private关键字修饰,因为抽象方法必须被子类实现,如果使用了private关键字修饰抽象方法,则子类无法实现该方法.