重温java接口与抽象类

最近公司加班厉害,很久没有更新博客了,今天下班早,就写点,

其实到现在为止自己也只是会用接口,和抽象类,对于这二者的区别也仅仅停留在定义的概念上,但是最近看到的一篇文章,对我影响很大,

抽象类用abstract 声明,接口用interface声明,如这之类的定义,直接略过,直奔主题,来点通俗易懂的干货。

抽象类是对事物的抽象,即对类的抽象,把一类具有公共特点的类(包括属性和行为),抽象成一个父类,实现类去继承

而接口是对类(局部)行为的抽象,

举个简单的例子,飞机和鸟都有都一个共同的行为,飞,那么就可以将飞机设计为一个Airplane,将鸟设计为一个Bird类,但不能将飞行设计为一个类,因为它并不是对一类事物的抽象,只是一个行为特性,此时可以将其设计成一个接口:Fly,包含一个fly()方法,那么Airplane和Bird都去继承Fly即可,然后各自实现fly()方法,然后不管是运输机,客机,还是战斗机直接继承Airplane类即可,鸟类同理。

此时可以看出,继承extends 是一个   “是不是”   的关系,如   运输机  是一个飞机,而implements  是一个 “有没有”的关系,(有就实现接口,没有就不实现)即 飞机有  飞行的  行为  在此可以看出,抽象类是一中模板式的设计行为,而接口是一种辐射式的设计行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欲将心事付瑶琴知音少弦断有谁听

欲将心事付瑶琴,知音少

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值