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