java什么时候应继承_JAVA-初步认识-第八章-继承-定义继承

一.

接下来描述继承什么时候使用?

产生关系,提高复用性。什么时候写继承呢?

有这么一种思想,A有我们所需要的功能,继承它,我们就不需要定义了,这可以提高代码复用性。一定要注意,千万不要为了提高复用性,而继承。

写继承是要依赖于关系的,没关系就不需要继承。

先说一下为了提高复用性而使用继承的弊端或者误区,观看下面的截图。定义完DemoA和DemoB后,我们发现都具有show1(),那么直接用B继承A,这样一来,B中就不需要定义show1()方法了。但是show2()是B功能吗?如果不是,就不应该进来(由于继承的关系,所有的成员都一起来了),这就是问题,这种继承是不应该存在的。仅仅是为了拿别人的东西而继承。这种继承不允许,太危险。

1c6578a3bba98ef58d579c54014b37e1.png

那应该怎么办呢?之所以会有这样的想法,是因为DemoA和DemoB里面有共性内容,本来A和B是两兄弟,现在让他们成为父子,这不太合适。两人找同一个父类,就完事了。对于两者相同的部分,进行抽取重新建类再继承,显得更为合理。

d9f57a5913f96ccf69e340a58ef32521.png

如果DemoA中的方法,DemoB全都具备,那么就产生了继承。

e4e916fc5d1536f9c1e1abaab421af4c.png

这时再来看继承,有点像集合的意思,不是要求交叉,而是要求包含。

怎么看待所属关系,狼和狗都属于犬科,它们是犬科中的一种。那我们就可以说,狼和狗这样的事物就可以继承犬科,它们具备犬科所有的特征,这就存在着继承。

继承还有所发展,不光有基础的,还有更多的其他的。

判断到底是否是一种?可以这么做,直接操作继承,然后被继承的类,或者说父类中的功能(继承特指功能么?)是否子类中都应该具备。如果有些,它不应该具备,那就不存在继承。这种方法比较笨,先要写成继承,然后再去判断。

解析:剖析一下父类和子类。从已有的讲解来看,父类中的内容要比子类中少,父类是抽取形成的。但是抛开这些代码内容而言,父类所能包含的意义更广,因为描述比较少,显得模糊,这样就能代表更多的东西。

狗,狼抽取一下形成了犬科,老虎,狮子抽取一下,形成了猫科。如果再将猫科和犬科往上抽取,形成就是哺乳动物。

父类比较模糊,子类比较具体。我们要找到对象之间的关系,为什么说的是对象?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值