Почему Java не поддерживает множественное наследование, хотя все java-методы являются виртуальными по умолчанию? Почему проблема с алмазом может возникнуть в Java?Почему Java не поддерживает множественное наследование, хотя все java-методы являются виртуальными по умолчанию?
ответ
Проблема с алмазами не может возникает на Java только потому, что это не возможность множественного наследования.
Я думаю, что это произвольное решение солнцезащитным, чтобы ограничить ошибки развития в результате многократного программирования наследования и Romove сложности
Да, известная как проблема с алмазом, отсюда и вопрос. – benjymous
James Gosling (известный как «отец» Java) сказал:
JAVA пропускает многие редко используемые, плохо понятые, путаные черты C++, которые в нашем опыте приносят больше горя, чем пользы. Это в первую очередь состоит из перегрузки оператора (хотя и имеет перегрузку метода), множественное наследование и экстенсивное автоматическое принуждения.
Ссылка: http://javapapers.com/core-java/why-multiple-inheritance-is-not-supported-in-java/
Так, по его словам, они просто не хотят, чтобы добавить его, как они думали, что это была плохая идея.
P.S. Использование нескольких интерфейсов - это не то же самое, что множественное наследование.
Поскольку интерфейс дает гибкость, чем конкретные классы, и у нас есть возможность реализовать несколько интерфейсов с использованием одного класса. По соглашению мы придерживаемся двух чертежей для создания класса. Позволяет увидеть хорошенькое определение Java:
JAVA: A simple, object oriented, distributed, interpreted, robust, secure,
architecture neutral, portable, high performance, multithreaded,
dynamic language.
Опять же не существует никакой возможности проблемы Алмазной в Java, потому что он не поддерживает множественного наследования.
- 1. Почему Java не поддерживает множественное наследование?
- 2. почему Java не поддерживает множественное наследование
- 3. Почему Java не поддерживает множественное наследование?
- 4. Почему vb.net не поддерживает множественное наследование?
- 5. Почему Javascript не поддерживает наследование по умолчанию?
- 6. Почему C# не поддерживает множественное наследование?
- 7. Поддерживает ли Java 8 множественное наследование?
- 8. Почему C# doen't поддерживает множественное наследование
- 9. Множественное наследование в C++ с виртуальными функциями
- 10. По умолчанию любой класс расширяет класс Object. Разве это не означает, что java поддерживает множественное наследование?
- 11. Множественное наследование и недоступный конструктор по умолчанию
- 12. Почему ActiveRecord в Rails не поддерживает множественное наследование таблиц?
- 13. Множественное наследование в java
- 14. множественное наследование Java
- 15. Множественное наследование в Java?
- 16. Почему не рекомендуется использовать множественное наследование?
- 17. Множественное наследование элементов данных - Java
- 18. Java допускает множественное наследование
- 19. как разрешить множественное наследование
- 20. Множественное наследование класса?
- 21. Множественное наследование
- 22. Как компилятор g ++ реализует множественное наследование с виртуальными функциями?
- 23. Множественное наследование QObject
- 24. Почему этот интерфейс поддерживает множественное наследование, когда интерфейс полностью абстрактный?
- 25. Проектирование иерархии классов - множественное наследование в Java
- 26. Почему интерфейс поддерживает множественное наследование и класс Doesnt в C#
- 27. Множественное наследование ограничено в java?
- 28. Множественное наследование: Java vs C++
- 29. Множественное наследование и класс Объект
- 30. Не по умолчанию в Java 8 уничтожает всю идею не позволять нам делать множественное наследование?
Только люди в Sun Microsystems могут ответить на этот вопрос. –
Идея удаления множественного наследования для удаления сложности. – HackerGK
Проблема (ну, * одна из проблем) с множественным наследованием - это конфликты имен, она не имеет ничего общего с виртуальными методами. –