Чи можна викликати метод дочірнього класу з батьківського класу? Ні, ні в якому разі оскільки дочірній клас має всі властивості свого батьківського класу, а також власні властивості, але батьківський клас не має властивостей дочірнього класу.16 липня 2022 р.
Якщо посилання на батьківський клас використовує конструктор дочірнього класу (який називається upcasting), тоді можна викликати лише ті методи, які також присутні в батьківському класі (визначений або оголошений), тобто можна викликати лише перевизначені методи. Ті методи, які просто належать дитині, не можуть бути названі.
Отже ми не можемо отримати доступ до змінної дочірнього класу з посиланням на змінну батьківського класу. Лише до змінних, присутніх у батьківському класі, можна отримати доступ через посилальну змінну батьківського класу, незалежно від того, чи використовуєте ви цю посилальну змінну для зберігання об’єкта батьківського класу або об’єкта дочірнього класу.
Якщо ви хочете викликати функцію дочірнього компонента з батьківського компонента в React, ви можете використовувати хук useImperativeHandle. Припустімо, у нас є простий компонент Listing, який рендерить випадковий елемент Todo з API JSONPlaceholder.
Визначити батьківську функцію: створіть функцію в батьківському компоненті, яку потрібно викликати з дочірнього компонента. Передавати функцію як проп: передати батьківську функцію дочірньому компоненту як проп. Викликати функцію в дочірньому компоненті: у дочірньому компоненті викличте батьківську функцію за допомогою властивості, переданої від батьківського.
Чому ми не можемо викликати дочірні методи за допомогою батьківського посилання на дочірній об’єкт у Java? Уявіть, що ваш дочірній клас успадковує батьківський клас. Потім дочірній клас може визначати власні методи, які не визначені в батьківському класі та не успадковані дочірнім класом.
Ви визначаєте метод дочірнього класу як віртуальну функцію в батьківському класі, а потім перевизначаєте та реалізуєте цю функцію в дочірньому класі.Тоді ви можете викликати його в іншому методі батьківського класу.