Oop 面向对象继承问题

Oop 面向对象继承问题,oop,Oop,我有两个类,其中的方法如下所示 |----AVL----| |-----RB------| | | | | | | | | | - insert | | -balance | | | | | | - balance | | | | | |

我有两个类,其中的方法如下所示

|----AVL----| |-----RB------| | | | | | | | | | - insert | | -balance | | | | | | - balance | | | | | | | |-----------| |-------------| |----AVL-----| |----RB------| | | | | | | | | |-插入| |-平衡| | | | | |-平衡| || | | | | |-----------| |-------------| 在AVL的“插入”方法中,它调用“平衡”。

RB继承了AVL,所以我可以使用AVL的insert方法。现在,当我调用RB::insert()时,它调用AVL::insert()&然后调用AVL::balance(),但我希望它在RB对象调用“insert”时,从AVL::insert()调用RB::balance()。这是虚拟方法的一个经典案例:使
AVL.balance
虚拟
并在
RB
中重写它。然后根据对象调用的类型调用正确的实现——调用
balance
的代码将作为
AVL
的一部分写入
AVL

这是虚拟方法的经典案例:使
AVL.balance
virtual
并在中重写它并不重要
RB
。然后将根据对象调用的类型调用正确的实现
balance
——调用
balance
的代码将作为
AVL
的一部分写入并不重要,我得到了此代码的预期结果:。请放置一段可复制的代码进行处理。还有,你用的是什么语言?@MadaraUchiha:在PHP中,所有的方法都是虚拟的,毫无例外,这就是为什么它适合你的原因。@Jon:你能详细说明一下吗?什么是虚拟方法?什么是“真正的”方法(或其他方法)?@MadaraUchiha:我得到了这段代码的预期结果:。请放置一段可复制的代码进行处理。还有,你用的是什么语言?@MadaraUchiha:在PHP中,所有的方法都是虚拟的,毫无例外,这就是为什么它适合你的原因。@Jon:你能详细说明一下吗?什么是虚拟方法?什么是“真正的”方法(或其他方法)?@MadaraUchiha: