A3类由A2类派生
A2类由A1类派生
都有方法pdMethod现在由A3类派生出一个A4类,想让pdMethod方法由A1类派生,也就是说pdMethod方法不执行A2类和A3类中定义的pdMethod方法中的代码?
解决方案 »
- delphi 读取文本内容
- 求助..信号! 关于过程循环的问题 70 分相送 通宵等答..
- 如何通过excell中的数据标志来替换数据库中的数据 急!!!!!!!!
- 线程和串口的问题!
- 菜鳥的困擾!!!老鳥們都進來看看!!!
- 如何在程序中得到打印机当前设置的dpi?
- 50分,进来随手捡一下。
- 如何向列表框或组合框中一次性加入查询到的结果?
- 我自己解决了,用ADO对数据库中的指定记录的图像字段的修改,删除。但又有两个问题。
- 如何使用ado(access),在dbgrid上同时更新几条记录,或同时恢复数条被修改的记录?
- 【大龙驹】为父亲祈祷,散分.
- 帮帮我吧!急!------,求VPN实现文件下载 在线等
如果你只想要A1类的pdMethod()和A2,A3类的其它方法
那你直接从A1继承,重定义一个类MIDA。在MIDA类中不要修改A1类的pdMethod(),然后把在类A2和类A3中你想要的方法加到MIDA类中
除非不得以,这个方法不是个好方法。。
>>也就是说pdMethod方法不执行A2类和A3类中定义的pdMethod方法中的代码?并不一定违反这个所谓的里氏替换原则,对于a4的pdMethod来说,不论执行不执行a3.pdMethod的内容,也不论它实际执行了什么,
只要它的pdMethod在语义上等价于a1的pdMethod的定义,那么,a4.pdMethod的实现就没有违反原则,
或者说a4继承祖先定义的接口,但是它可以不继承祖先的实现(a4自己另外实现),就像接口那样工作因此a4.pdMethod只调用a1.pdMethod而忽略a2/a3的相应方法是不违反原则的,如果这样也违反原则的话,那么就无所谓重载了
这句话有错,应该改为:
在A4中的pdMethod把它的祖先类中的pdMethod方法都替换了
所以在A4中使用pdMethod方法就相当于直接使用A1中的pdMethod方法不过我也是在D3书上看到是这样说的
不知道行得通不,我自己也没有试过
如果你实在找不到其它方法的话可以试试这种办法
看是否可行
重载和多态是不同的
重载是OverLoad,不属于OO范畴
多态覆盖通过Override实现……