我试图了解以下问题的答案在所有主要的 OOP 语言中是否相同;如果不是,那么这些语言有何不同。
假设我有A
定义方法的类act
和jump
;方法act
调用方法jump
。A
的子类B
覆盖方法jump
(即,使用适当的语法来确保无论何时jump
调用,B
都使用类中的实现)。
我有b
类的对象B
。我希望它的行为就像它是类的一样A
。换句话说,我希望jump
使用A
. 我有哪些不同语言的选择?
例如,我可以通过某种形式的向下转换来实现这一点吗?或者也许通过创建一个知道要调用哪些方法的代理对象?
我想避免创建一个全新的类对象A
并仔细设置和之间的内部状态共享,a
因为b
这显然不是面向未来的,而且很复杂。我还想避免将状态复制b
到一个全新的类对象中,A
因为可能有很多数据要复制。
更新
我专门问了这个关于 Python的问题,但似乎这在 Python 中是不可能实现的,从技术上讲,它可以做到......有点......
似乎除了技术上的可行性之外,从设计的角度来看,还有一个强烈的反对这样做的论据。我在一个单独的问题中问这个问题。