[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-chto-takoe-default-metody-interfeysa":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},356,"chto-takoe-default-metody-interfeysa",10,"java-8","Java 8+","☕","Что такое default методы интерфейса?","`default`-метод интерфейса — это метод с реализацией, объявленный в интерфейсе с ключевым словом `default`. Класс, реализующий интерфейс, наследует эту реализацию и может, но не обязан, её переопределить. Главная причина появления — возможность добавлять новые методы в существующие интерфейсы без нарушения обратной совместимости.\n\n> **Аналогия из жизни:** `default`-метод — это инструкция по умолчанию в контракте. Если вы не написали свою, действует стандартная. Но вы вольны её заменить.\n\n```java\ninterface Example {\n    int process(int a);\n    default void show() {\n        System.out.println(\"default show()\");\n    }\n}\n```\n\n### Ключевые правила\n\n- Класс может не переопределять `default`-метод — тогда наследуется реализация из интерфейса\n- Если класс реализует два интерфейса с одинаковым `default`-методом, он обязан переопределить метод самостоятельно (иначе — ошибка компиляции)\n- `default`-метод не может переопределить метод `Object` (`equals`, `hashCode`, `toString`)\n- `default`-методы позволили добавить `stream()`, `forEach()`, `sort()` и другие методы в существующие интерфейсы коллекций без нарушения обратной совместимости\n\n> **На собеседовании:** часто спрашивают, что произойдёт при конфликте `default`-методов из двух интерфейсов. Ответ: ошибка компиляции, класс обязан явно переопределить метод. Также упомяните, что именно `default`-методы сделали возможным появление Stream API.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Что такое default методы интерфейса? — Gymterview","`default`-метод интерфейса — это метод с реализацией, объявленный в интерфейсе с ключевым словом `default`. Класс, реализующий интерфейс, наследует эту реализац","`default`-метод интерфейса — это метод с реализацией, объявленный в интерфейсе с ключевым словом `default`. Класс, реали",[15,13],"`default`-метод интерфейса — это метод с реализацией, объявленный в интерфейсе с ключевым словом `default`. Класс, реализующий интерфейс, наследует эту реализацию и может, но не обязан, её переопределить. Главная причина появления — возможность добавлять новые методы в существующие интерфейсы без на",true]