Встречается на собеседованиях • сегодня
В чем разница между абстрактным класом и интерфейсом
Абстрактный класс может содержать реализацию методов (в том числе неабстрактных), поля и конструкторы. Интерфейс до Java 8 мог содержать только абстрактные методы, но сейчас поддерживает дефолтные и статические методы, а также константы (public static final поля).
Класс может наследовать только один абстрактный класс, но реализовывать несколько интерфейсов.
Пример:
java
abstract class Animal {
abstract void makeSound();
void sleep() { System.out.println("Zzz"); } // реализованный метод
}
interface Flyable {
void fly();
default void land() { System.out.println("Landing..."); } // дефолтный метод
}Используй абстрактный класс для общего поведения, а интерфейс — для определения контракта.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
