Giả sử có lớp cơ sở Avà lớp dẫn xuất B.
Lớp Acó hai chức năng: fun1()và fun2(), trong đó fun1()các cuộc gọi fun2().
Lớp Bghi đè fun1()và fun2(), và một lần nữa fun1()gọi fun2().
Tuy nhiên, tôi muốn gọi base.fun1()overriden fun2(). Vì base.fun1()các cuộc gọi fun2()thay vì phiên bản của lớp cơ sở tạo ra vòng lặp khá đáng tiếc:
fun1() -> fun2() -> base.fun1() -> fun2() -> base.fun1() -> ...
Có cách nào để buộc base.fun1()phải gọi phiên bản cơ sở của fun2()? Tôi biết rằng vấn đề thực sự có lẽ nằm ở thiết kế tồi của các lớp đó, nhưng tôi vẫn tò mò liệu điều đó có thể xảy ra hay không.
fun1() -> fun2() -> base.fun1() -> base.fun2(). Thật không may, sau khi ghi đèbase.fun2(), cácbase.fun1()cuộc gọifun2()thay thế.