Java, Как назвать метод главных родителей? [дубликат]

24
задан Community 23 May 2017 в 12:32
поделиться

3 ответа

Я не уверен, что сможете. Java по умолчанию делает все методы виртуальными. Это означает, что самое простое решение не сработает: объявить переменную типа A , назначить ей свой экземпляр C и вызвать myMethod приведет к ] C.myMethod вызывается.

Вы можете попытаться отразить тип A и напрямую вызвать его методы. Было бы интересно посмотреть, что произойдет в этом случае, но я был бы удивлен, если бы виртуальная отправка не произошла ...

0
ответ дан 29 November 2019 в 00:21
поделиться

Вы не можете и не должны.

Это признак плохого дизайна. Либо переименуйте метод, либо включите необходимые общие функции в другой метод или служебный класс.

2
ответ дан 29 November 2019 в 00:21
поделиться

Вы не можете. Это сделано намеренно.

Класс B предоставляет интерфейс (как в концепции, а не ключевое слово Java) для подклассов. Он решил не предоставлять прямой доступ к функциям A.myMethod . Если вам требуется B для обеспечения этой функции, используйте для этого другой метод (другое имя, сделайте его защищенным ). Однако, вероятно, лучше «предпочесть композицию наследованию».

18
ответ дан 29 November 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: