У меня есть два вопроса относительно интерфейсов в Java. 1) Если класс реализует все интерфейсные методы интерфейса I, не объявляя себя в качестве их реализации, может ли он по-прежнему использоваться как вход в переменные типа I? 2) Подкласс класса A, который реализует интерфейс I, наследует соответствие этому интерфейсу или должен ли он объявлять себя как реализующий I?Наследование реализации интерфейса в Java
ответ
Если класс происходит реализовать все методы интерфейса интерфейса I, без объявления себя как их реализации, она может все еще быть использованы в качестве входных переменных типа I?
Нет. Что вы описываете, более сродни duck typing.
ли подкласс класса А, который реализует интерфейс я наследует соответствие с этим интерфейсом, или должен также заявить о себе как реализации I?
Предполагая, что вы имеете в виду:
public class A implements I { /* ... */ }
public class B extends A { /* ... */ }
В этом случае B
реализует I
.
- Это означает «Может ли он удовлетворить принцип замещения Лискова?», Ответ «нет».
- Класс B соответствует его родительскому признаку и не нуждается в повторном использовании интерфейса.
Лучший способ ответить на такие вопросы, как эксперимент - попробовать и посмотреть.
+1 только для «почему бы вам не попробовать, прежде чем спрашивать?» точка - что-то хорошее, что стоит переводить более регулярно. – delfuego
- Нет, интерфейсы должны быть явно реализованы.
- Интерфейсы, реализованные базовыми классами, являются расширениями, всегда реализуемыми производными классами.
В качестве следствия абстрактный класс, реализующий интерфейс, может отложить реализацию к конкретному подклассу: http://java.sun.com/docs/books/tutorial/java/IandI/abstract.html – trashgod
- 1. Циклическое наследование в реализации реализации интерфейса Фрагмента
- 2. Наследование интерфейса - это наследование, а наследование реализации - частное наследование
- 3. Параметр реализации интерфейса Java
- 4. Наследование реализации Meyer в java
- 5. Наследование основного интерфейса Java
- 6. Наследование как интерфейса, так и реализации C++
- 7. Проблема реализации интерфейса Java
- 8. наследование и полиморфизм реализации в Java
- 9. Наследование интерфейса Java вызывает недоумение IDE
- 10. Ошибка интерфейса реализации класса Java
- 11. Java - экземпляры реализации внутри интерфейса
- 12. Ошибка реализации интерфейса Swing Java
- 13. Наследование и наследование интерфейса
- 14. Наследование реализации в VBA?
- 15. Ограничения в реализации интерфейса в Java
- 16. Наследование интерфейса или интерфейса Impliment?
- 17. Способ реализации интерфейса Java в производном классе
- 18. Комментирование интерфейса и наследование
- 19. Почему C# не допускает наследование возвращаемого типа при реализации интерфейса
- 20. Java Реализовать метод типа интерфейса в реализации интерфейса
- 21. интерфейса и наследование
- 22. Наследование множественного интерфейса Java и передача значений
- 23. Концепция реализации интерфейса
- 24. Классическая Наследование реализации в JavaScript
- 25. путаница в реализации интерфейса
- 26. Java ArrayStoreException при хранении интерфейса реализации класса
- 27. Последовательность первичных номеров путем реализации интерфейса (Java)
- 28. java setting classpath для интерфейса реализации класса
- 29. Java-объект сериализован без реализации сериализуемого интерфейса
- 30. Наследование Дженерики Интерфейс в Java
О нас: общественный интерфейс I {public void hey(); } Публичный класс X {public void hey() {/*...*/} Публичный класс A расширяет X реализует I {} Это работает? – Dois