我试图澄清动态语言(Python、ruby)和静态类型语言(java、C++)中运行时动态绑定和类继承的概念。我不确定我是否正确。
在 Python 和 Ruby 等动态语言中,运行时动态绑定被实现为鸭子类型。当解释器检查对象的类型时,它检查对象是否具有特定的方法(或行为)而不是检查对象的类型;并且运行时动态绑定并不意味着类继承。类继承只是减少了 Python 和 Ruby 中的代码复制。
在 Java 和 C++ 等静态类型语言中,运行时动态绑定只能通过类继承获得。类继承不仅减少了这里的代码拷贝,还用于实现运行时动态绑定。
总之,类继承和运行时动态绑定是两个不同的概念。在 Python 和 Ruby 中,它们完全不同。在 Java 和 C++ 中,它们混合在一起。
我对吗?