面向对象(下):抽象类和接口

一、抽象类

定义一个类时,常常需要定义一些成员方法用于描述类的行为特征,但有时这些方法的实现方式是无法确定的(子类继承父类的方法时,父类的方法无法满足子类的实际需求)

针对上述情况,Java提供了抽象方法来满足这种需求。抽象方法是使用abstract关键字修饰的成员方法,抽象方法再定义时不需要实现方法体

语法格式:      abstract  返回值类型   方法名称(参数列表);

当一个类包含了抽象方法,该类就是抽象类。但是,一个抽象类不一定具有抽象方法.抽象类和抽象方法一样,必须使用abstract关键字进行修饰

语法格式:   abstract   class  抽象类名称{

                          属性;                   

                          访问权限   返回值类型   方法名称(参数){                          //普通方法

                                 return  返回值;

                            }

                             访问权限  abstract   返回值类型   方法名称(参数);         //抽象方法

                       }

抽象类的定义比普通类多了一个或多个抽象方法,其他地方与普通类的组成基本相同

定义规则:1.包含抽象方法的类必须是抽象类

                  2.声明抽象类和抽象方法都要使用abstract关键字修饰

                  3.抽象方法只需要声明而不需要实现," { } "都没有

                  4.如果一个非抽象类继承了抽象类之后,必须重写抽象类中的全部抽象方法

案例:

  声明了抽象类Animal,并在Animal类中定义了抽象方法shout( );                     

在子类Dog中重写了父类Animal的抽象方法shout( );

创建一个测试类进行代码测试,使用dog调用shout( )方法

注意:使用abstract关键字修饰的抽象方法不能使用private关键字修饰,因为抽象方法必须被子类实现,如果使用了private关键字修饰抽象方法,则子类无法实现该方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值