为什么类是单继承的?接口是多继承的?

如果将资源的组织结构看作空间的话资源确实是单继承的,确实应该是树。因为一个空间单元只可能有一个直接的父空间单元不可能会有两个,因为空间是不交叉的。
那个PrivilageBigram两两组合出的多继承应该是从运动的角度观察事物的,运动就是变化,就是时间。比如一个人肯定是只有一个直接领导的,但是这个人在开展工作的时候是可以从任何他人那里得到(继承或者别人委托给他)权限的,这是多继承的。
类是单继承的,接口是多继承的,人们的知识树的确是良好的、一致的。类关注的是结构、结构类比空间,接口关注的是行为、行为类比时间。
时间 == 运动 == 变化 == 状态的保持 == 连续性(关于这个等式的来源见末尾)
资源、空间是单继承的是因为这样:一个0 1物理开关在一个时刻只可能是至多一个单元(比如一个int类型包括一排32个物理开关)中的节点,一个物理开关不可能在同一个时间具有多个父节点。但是当世界运动起来后事情就不是这样了,世界运动起来就是引入时间维度(时间 == 运动 == 变化 == 状态的保持 == 连续性),引入时间维度后一个物理开关可以在不同时刻具有不同的父节点。

时间是什么?

设想一个状态:这个状态没有“物质”没有“空间”没有“能量”……总之什么也没有。让我用null来代表这个状态。 显然null不会突然间改变。因为一个空的世界怎么会‘突然’生出东西来呢?null若改变就得无缘无故地生出东西。null要保持 null的状态,null要连续,这里的“状态保持”需要时间,或者说状态保持就是时间,再或者说连续性就是时间。绝对的不变的状态不存在,时间是衡量状态改变快慢的物理量。状态不能突然改变的连续的性质使null具有了时间概念。



下班回来的路上我突然感觉我悟到道了。单继承是棵正树,多继承是棵倒树;或者说单继承是棵倒树,多继承是棵正树。到底哪个定义成正哪个定义成负无需纠结。
单继承是子节点从父节点继承事物,多继承是父节点从子节点继承事务。这刚好是棵自然界的树,自然界的树有地上部分和地下部分。当那棵树获取输入(光、二氧化碳、氮磷钾元素)的时候是多继承的,是父节点从子节点继承事物;但那棵树生长的时候,当那棵树分配自身能量的时候是单继承的,子节点从父节点继承事物。这可能就是新陈代谢。这可能是道,是那个太极图上的道的分形。




多继承是和场景有关,是动态的,如同一个演员演戏,更换不同的布景场景,他有不同的行为接口。

而单继承是静态的,是一种天然属性,和主体动作无关。

从动态和静态两个方面区分,就不会把动态的硬搞成静态的,函数动态组合能解决的硬是使用静态结构去解决,虽然都是树,但是创建树的时机不同。



兄弟,感觉有点走火入魔了。。。。

印象中有一篇相关的文章说得不错,特地搜了一下:

设计模式及继承和接口
其中有两句话,说得很好:
继承:描述事物的自然属性和行为的复用。
接口:描述事物的社会属性和行为的复用。
--------------------------------------------------
进一步,借用一下苏格拉底的问题:我是谁,我来自哪里,我将去哪里?
我们也可以提出类似的问题:对象是什么?对象从哪里来(继承)?对象将去哪里(接口)?这问题可大可小,可不回答。

落实在代码中,如果是有状态的行为复用,用继承;如果是无状态的行为的复用,用接口。

在有些语言中,继承之所以是单继承:原因怕是犹如鸠摩智一般,练了小无相功、又学了少林七十二绝技、易筋经,而又没有领悟化解之佛法(管理好各种继承来的状态),容走火入魔呀


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值