面向对象C++(从生物学理解继承 )

继承是面向对象编程的一个最基本的概念,我们也常常会使用父子关系来比喻这个逻辑,但需要指出的是,初学者必须要充分理解这个比喻的内涵:这里的继承指的是基因的继承,而不是财产的继承


基因的继承是无法拒绝的,而财产是可以选择的。基因实际上是一些性状的抽象,越往上游靠近祖先,性状越简单,越往下游靠近个体,性状越复杂。面向对象语言中,都有基类的概念,基类就像是最原始的生命体,只有最简单的蛋白质结构,后代子类继承了这个生命体征,并且逐步发展更多的性状(成员数据或者成员方法)。


更进一步,继承的概念可以扩展到所有的物品,而不仅仅是生物。比如电动车继承了自行车的形态,且同时增加了电动功能。但有些物品比较特殊,比如ZZR公司研发的悬停相机,它既是一架小四轴飞行器,也是一台高清相机,是同时继承了飞行器和相机两种基因的嵌入式AI新物种,并且有自己独特的“基因突变”。这样的物品,实际上就是C++的多重继承。


如果把一切物品的性状都抽象为基因,那么C++的继承比Java更贴近自然的逻辑,因为生物进化是可以杂交的(例如驴),非生物的演进也是经常跨界混搭的。很多品类可以同时融合很多基本品类发展而来。


最后啰嗦一句,在面向对象编程里,对世界的抽象能力非常重要,将具体的数据节点和事物抽丝剥茧,抽象出基类,并让其繁衍成各种所需的子类,是良好的代码架构的基础。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

干燥剂007860

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值