Предположим, нам нужно реализовать различные типы деревьев с классом "BaseNode", из которого получены другие типы узлов, и предполагается, что переменная экземпляра называется parent
своего собственного типа, как правило, это выглядит так:
class BaseNode{
//...some fields
BaseNode parent;
//...other methods
}
Теперь, если я собираюсь получить Node для дерева AVL с большим количеством членов:
class AVLNode extends BaseNode{
//...other useful stuff
}
исходные элементы узла parent
(& left
& right
) по-прежнему будут иметь тип BaseNode
, что не позволяет мне реализовать дерево AVL.
Кто-нибудь, кто мог бы сказать мне, как мы могли бы решить эту проблему наследования?
Спасибо!