Встречается на собеседованиях • сегодня
Как определить абстрактный класс или интерфейс
Абстрактный класс объявляется с ключевым словом abstract и может содержать как абстрактные методы (без реализации), так и обычные методы. Нельзя создать экземпляр абстрактного класса напрямую.
Интерфейс объявляется с ключевым словом interface. До Java 8 интерфейсы могли содержать только абстрактные методы, но теперь могут включать методы с реализацией (default и static методы). Все методы интерфейса по умолчанию public.
Пример:
java
// Абстрактный класс
abstract class Animal {
abstract void makeSound(); // абстрактный метод
void sleep() { System.out.println("Zzz"); } // обычный метод
}
// Интерфейс
interface Movable {
void move(); // абстрактный метод
default void stop() { System.out.println("Stopped"); } // default метод
}Ключевые различия:
- Класс может наследовать только один абстрактный класс, но множество интерфейсов
- Абстрактный класс может иметь поля и конструкторы, интерфейс - только константы (public static final)
- Абстрактный класс описывает "is-a" отношение, интерфейс - "can-do" отношение

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы