【讨论】接口继承和类继承(又叫实现继承)的区别,实现原理?
我先说:
1 类继承用是严格按照分类学的标准,父类的所以接口暴露给子类,子类不仅继承接口,也继承代码。父类的改变,需要子类重新编译,属于编译实链接。
2 接口继承其实就是接口契约,模块的改变,只要不改变接口,调用模块的其他模块都不需要重新编译。
实现原理上,有人说纯虚函数就是接口,我总感觉不妥。
企盼大虾浮现!
问题点数:50、回复次数:14Top
1 楼rtdb(东临碣石)回复于 2005-07-05 09:59:55 得分 5
唉,C++不存在真正的接口,所有只好用纯虚函数代替。
Top
2 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-07-05 10:05:42 得分 5
接口?
接口繼承就是 純粹地實現。。
類地話 可以不用實現 使用繼承即可。。
Top
3 楼wasoxi(我就是(没意思~~~))回复于 2005-07-05 10:06:04 得分 0
先顶一下Top
4 楼foochow(无聊,灌水......)回复于 2005-07-05 10:22:09 得分 31
定义纯虚函数的目的在于,使派生类仅仅只是继承函数的接口.(基类也可以定义纯虚函数的实现,子类要调用的话只能显示调用base::)
声明简单虚函数的目的在于,使派生类继承函数的接口和缺省实现.
声明非虚函数的目的在于,使派生类继承函数的接口和强制性实现.
....
具体的去看effective c++ 条款36: 区分接口继承和实现继承
Top
5 楼yjh1982(血精灵)回复于 2005-07-05 10:41:47 得分 3
C++ 的接口繼承就是从只有纯虚函数成员的类继承Top
6 楼darkstar21cn(≮天残≯无畏)(死亡进行时)回复于 2005-07-05 11:09:45 得分 3
实现原理上,有人说纯虚函数就是接口,我总感觉不妥。
============================================
同感,本人认为纯虚函数应该是接口的一种实现方法。Top
7 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-05 14:22:23 得分 0
接口继承只是一种契约,虽然实现方式上很近,但是用起来一定要小心,错误或者不精确的抽象基类的名字都可能导致系统架构的困难Top
8 楼cdo(Everything has a favourable turn)回复于 2005-07-05 14:38:06 得分 3
接口感觉就像声明,而继承重写就想实现.Top
9 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-05 14:56:36 得分 0
接口是一组相关的操作的集合,提供SERVICE。Top
10 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-06 08:58:59 得分 0
同继承一个接口的子类群体与同继承一个父类的子类群体在表现上差不多,但是在被使用的时候却显现出一些不同。
同继承一个接口的子类群体,只是说这组操作(接口定义)可以互相实现替代。接口是一种角色,实现接口的类是这个角色的具体扮演者。
同继承一个父类的子类群体,也具有上述的功能,但是子类不仅仅是父类代表的角色,应该是父类这个演员特性的继承。
不知道我说得对否?Top
11 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-06 09:02:14 得分 0
如果说接口继承继承下来的是角色,那么子类继承应该是演员的继承吧,她不仅继承了父类的角色,也继承了父类对这个角色的演绎,对吗?Top
12 楼yangman211()回复于 2005-07-06 09:25:42 得分 0
up
Top
13 楼xlsue(小林)回复于 2005-07-13 01:53:08 得分 0
up foochow(恰似你的温柔)!Top
14 楼laomai(老迈)回复于 2005-07-13 08:51:08 得分 0
先看看,呵呵Top




