Есть ли способ в java для расширения нескольких классов? Например, Студент может упоминаться как Личность, а также как Животное (вы получаете мою точку зрения). Если нет, каков путь вокруг него?Расширение нескольких классов
ответ
№. Java не поддерживает множественное наследование.
Вы можете реализовать несколько Interfaces (которые никогда не содержат код за пределами сигнатур методов), но не несколько классов.
Я бы добавил, что с помощью реализации по умолчанию (java 8) расширяется объем интерфейсов! @https: //docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html –
Способы по умолчанию - это точка, которая будет считаться @LouisF. –
Грубо сказал, нет. На самом деле расширение из двух классов невозможно, но если оно соответствует вашим потребностям, вы можете использовать интерфейс, то есть класс, в котором вместо наследования методов вы получите конкретный макет всех методов, которые должен иметь класс. Итак, да, с помощью этого метода вы можете использовать несколько классов в качестве интерфейсов, но если вы хотите напомнить реальный код, написанный методом из родительского класса, вы не сможете.
Возможный обход - это сделать больше классов для наследования между ними или сделать родительский класс, который полностью соответствует вашим потребностям в качестве общего родителя.
Например, если у вас есть учащиеся только в вашем коде, вы можете сделать родительский класс и person
и animal
классами, наследуемыми от него. Но опять же, если код более сложный или не вписывается в эту картину, вы не сможете это сделать, и вам, возможно, придется определить переменные, чтобы проверить, является ли этот указанный класс студентом.
- 1. Расширение нескольких классов
- 2. Расширение нескольких классов phpunit
- 3. PHP - Расширение нескольких классов
- 4. Расширение нескольких предопределенных классов
- 5. Расширение нескольких классов Java без дублирования
- 6. Расширение mysqli и использование нескольких классов
- 7. Как сделать расширение для нескольких классов Swift
- 8. Расширение от нескольких классов в java
- 9. Расширение нескольких классов в кофе-скрипт
- 10. Расширение классов в Java
- 11. Расширение анонимных классов
- 12. Расширение иерархии классов
- 13. Расширение классов CSS
- 14. Расширение внешних классов
- 15. расширение классов в codeigniter
- 16. Расширение статических классов PHP
- 17. Расширение иерархии классов
- 18. Расширение классов php
- 19. Расширение классов Three.js
- 20. Расширение классов в PHP
- 21. Расширение класса - как мне избежать создания нескольких классов?
- 22. Расширение членства классов классов в коллекциях
- 23. Расширение общих классов классов для общего get_context_data
- 24. Расширение классов и наследования Javascript
- 25. Java Расширение классов над файлами
- 26. Расширение абстрактных классов в C#
- 27. Расширение плагинов и классов YUI3
- 28. Полиморфное расширение для сторонних классов
- 29. Расширение классов с помощью AutoMap
- 30. Расширение иерархии классов в Python
Итак, вы утверждаете, что некоторые ученики - это животные? :) –
Если ученик - это человек и животное, то почему человек не расширяет Animal? Единственный способ - подумать о другой структуре. Либо использование композиции вместо наследования, либо путем предоставления родительскому классу расширения «другого родительского класса». Сначала вы должны попробовать первое предложение: [Использовать композицию над наследованием] (http://stackoverflow.com/questions/11343840/favor-composition-over-inheritance). – Tom
Ближайшая вещь к множественному наследованию в java: https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html – peter