Веб-версияОткрыть в Telegram

ПостJava Core

23 декабря 2024
J
Java Developer
Java Core Чем отличается abstract class от interface? Ответ: 1. Наследование • abstract class может extends только один класс (single inheritance), но может реализовывать несколько интерфейсов. • interface может extends несколько других интерфейсов (множественное «наследование» интерфейсов). 2. Методы • abstract class может содержать как абстрактные, так и реализованные методы. Поддерживает любые модификаторы доступа. • interface ◦ до Java 8 содержал только абстрактные методы (по умолчанию public abstract) ◦ с Java 8 появились default и static методы с реализацией ◦ с Java 9 можно объявлять private методы внутри интерфейса, чтобы переиспользовать логику в default-методах. При этом приватные методы могут существовать только внутри интерфейса, и не видны реализующим классам. 3. Конструкторы • abstract class может иметь конструкторы для инициализации общих полей у наследников, но нельзя создать объект абстрактного класса напрямую (только через конкретные подклассы). • interface не может иметь конструкторов — объект интерфейса напрямую создать нельзя. 4. Поля • abstract class может содержать поля любых типов с любыми модификаторами. • interface может содержать только public static final поля (константы). Когда использовать: • abstract class - когда требуется общее состояние (поля) и общие методы (реализация), которые наследники могут переопределять или дополнять. Абстрактный класс может хранить поля и совместно использовать часть логики во всех наследниках. • interface - когда нужно определить «контракт» (набор методов) для различных классов, не связанных между собой по иерархии. Несмотря на появление default-методов с реализацией, в интерфейсе по-прежнему нельзя хранить состояние экземпляра. default-методы позволяют расширять интерфейс без нарушения совместимости, но не заменяют полноценного «скелета» с полями и логикой, который даёт абстрактный класс.
19 · 16.8K ·

Рядом в ленте

JJava DeveloperJava Stream API Разница между методами map и flatMap • Метод map принимает функцию, которая вызывается для каждого элемента стрима и преобразует его в другое знJJava DeveloperSpring При каких условиях транзакция Spring будет откатана (rollback)? Ответ: 1. Если выброшено unchecked исключение (наследник RuntimeException или Error). 2.
это сообщение
JJava DeveloperKafka Какие есть гарантии доставки сообщений Ответ: 1. At most once (не более одного раза): Сообщение может быть потеряно, но никогда не будет доставлено повторJJava Developerяндексоиды, без негатива )

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем