Я пытаюсь создать класс в R6, который наследует функцию от своего родительского класса. Однако эта функция опирается на другие вспомогательные функции, которые перезаписываются в дочернем классе.
Когда я вызываю родительскую функцию, я хочу, чтобы она использовала вспомогательные функции из родительского класса, а не переопределенные из дочернего класса.
Вот пример того, как работает мой код:
ParentClass <- R6Class(
public = list(
helper_fn = function() { print("Parent helper.") },
main_fn = function() { self$helper_fn() }
}
)
)
ChildClass <- R6Class(
inherit = ParentClass,
public = list(
helper_fn = function() { print("Child helper.") },
main_fn = function() { super$main_fn() }
)
)
Предполагаемое поведение - напечатать «Родительский помощник». но когда child_class
вызывает родительский main_fn
, он использует переопределенную функцию из child_class
.
child_class <- ChildClass$new()
child_class$main_fn()
# prints "Parent helper."
Можно ли этого избежать? Или это просто, как работает переопределение функции?