免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 三月廿七
打印 上一主题 下一主题

多重继承才是符合正常逻辑的, 接口不是, 接口很扭曲 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-06-16 16:49 |只看该作者
回复 19# 三月廿七


把无关的东西绑在一起。

论坛徽章:
0
22 [报告]
发表于 2012-06-16 16:52 |只看该作者
本帖最后由 三月廿七 于 2012-06-16 17:06 编辑
nilgod 发表于 2012-06-16 16:49
回复 19# 三月廿七

这个名词有出处吗?
把无关的东西绑在一起, 确实很扭曲

无关东西不要绑他,越绑越扭曲...

论坛徽章:
0
23 [报告]
发表于 2012-06-16 17:09 |只看该作者
回复 22# 三月廿七


不知道。

利弊权衡的事情。

论坛徽章:
0
24 [报告]
发表于 2012-06-16 17:42 |只看该作者
回复 16# starwing83


去 lua,     

论坛徽章:
0
25 [报告]
发表于 2012-06-16 20:58 |只看该作者
以前做的几个项目都用到多重继承

论坛徽章:
0
26 [报告]
发表于 2012-06-16 21:00 |只看该作者
ok2011ok 发表于 2012-06-14 20:41
目前多重继承实现得最好的就是 OIOIC 了


支持!!!!!

论坛徽章:
0
27 [报告]
发表于 2012-06-16 21:58 |只看该作者
告诉你我所认为的一个事实吧

C++实现多重继承的代价其实很小,无非是子类和父类之间的地址差值。C也可以通过组合实现多重继承,然后使用 container_of 操作来向下转换。Linux内核里面一个数据结构包含几个list_head,然后同时插入到不同的list,这是常事,C++的多重继承本质上干的事一样的。

对于C/C++来说,多重继承不管有多复杂,那都是编译器的事情,程序效率不会因此有丝毫的影响,要说真的有影响,可能就在每次转换的时候多了一个add或者sub指令。但是对Java和C#就不那么简单了。Java和C#是支持反射的,类型信息要带到解释器中。如果允许多重继承,每次类型转换就不仅仅是add和sub那么简单了,那要去查表来验证转换的合法性和安全性。接口不包含数据,不占用数据结构的内存,因此处理起来简单得多。

所以Java和C#在宣传的时候只笼统地强调多重继承的复杂性,却不提这个复杂性很深深影响Java和C#的效率,而对C/C++这类原生语言的效率几乎毫无影响。

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
28 [报告]
发表于 2012-06-17 12:12 |只看该作者
看到面向对象我就有掉头就走的冲动,可提到编程就少不了OOP。 面向对象的权威资料是什么呢,有人知道吗?

我记得在某篇文章中提到,OO只是类型的多态,天生缺少对方法多态的支持;而动态语言的duck typing则不管类型如何:“如果一只鸟看起来象只鸭子,走起来象鸭子,游起来象鸭子,哪么可以当它是只鸭子”。与“一切 皆对象”相比,我觉得duck typing要说的是“客观存在的对象是不可能被完整抽象的”。只有从行为上一步步认识,我们才知道所要抽象的类型是什么,才能给出定义。

在知道确切类型含义的情况下,我想ADT很适合。但OOP到底它想说的是什么?我真的不明白。

论坛徽章:
0
29 [报告]
发表于 2012-06-17 12:18 |只看该作者
本帖最后由 三月廿七 于 2012-06-17 12:19 编辑

回复 28# fergon

你还不适合玩面向对象, 你玩不起
   

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
30 [报告]
发表于 2012-06-17 12:27 |只看该作者
三月廿七 发表于 2012-06-17 12:18
回复 28# fergon

你还不适合玩面向对象, 你玩不起



哪什么样的人才适合 玩?

我不适合玩的地方说明一下?

一项技术也要在头上打上标签才能玩的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP