抽象类

什么是抽象类

  • 如果一个类中,有方法没有方法体,那么这个方法就是抽象方法.即,方法只有声明,没有方法体实现.
  • 一个类中,只要有一个抽象方法,那么这个类就是抽象类,说明这个类不具体

抽象类的用法

  • 抽象类也是类,有类就可以放属性和方法(当方法体/不带方法体)
  • 抽象类中可以放置属性,属性是用来存储数据的
  • 抽象类中可以放置有方法体的方法,此方法能够完成某个功能
  • 抽象类中可以放置没有方法体的方法,此方法就是抽象方法

注意

抽象类是不能实例化对象的,因为抽象类有抽象方法
程序员不能实例化,并不等于jvm不能实例化对象

抽象类的特点

  • 抽象类只能当父类
  • 如果在子类中把所有的抽象类的方法都补上方法体,那么这个子类就不是抽象类,就可以实例化对象了,同时也可以调用方法了.
  • 如果在子类中没有把所有的抽象方法补上方法体,那么这个子类还是抽象类,满足抽象类的用法

抽象类的应用场景

  • 在父类中有一些方法没有方法体,或者没有必要给上方法体,此时把方法做成抽象方法,那么此类就变成抽象类
  • 比如:

Shap形状类中有一个方法叫做draw()绘制图形的方法,但没有方法体
Triangle类继承了Shap类,重写了draw()方法,作用是绘制三角形
Retangle类继承了Shap类,重写了draw()方法.作用是绘制矩形

此时Shap类中的draw()方法就是抽象方法,因为子类要绘制不同的形状,而此时Shap类中的draw()方法就没必要写具体绘制某种形状的方法了.具体方法由子类根据情况去实现,各子类实现的结果也就不同了.

把抽象类抽象到极致,所有的方法都没有方法体,此种情况就不建议做成类了,建议做成接口.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值