Dar*_*enW 3 oop programming-languages
在C++和大多数面向对象的语言中,我知道,当您从现有的A类派生类B时,您可以添加新方法,覆盖现有方法以及添加新数据成员.如果A在B中有一些你不想要的碎片,你就无法消除它们.也许大多数时候无论如何都没有意义,但有时我希望能.
是否有任何语言允许定义派生类,并删除其父元素的某些元素?
我想也许正确的方法,子类应该提供一个覆盖父实现的空方法.
问题是子类与其超类之间存在IS-A关系.如果子类关闭了方法,那么在语义上它是否是超类的一个实例?多态性如何工作?当您将子类传递给期望超类类型的方法时,您会遇到各种各样的痛苦,您应该能够做到这一点.
也就是说,使用动态语言,您可以通过元编程在运行时删除所需的方法.但我只会做一个空方法,如果有意义,可能会抛出某种UnsupportedOperation错误.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |