Встречается на собеседованиях • сегодня

В чем разница между поведениями абстрактным классом и интерфейсом

Абстрактный класс может содержать реализованные методы, поля и конструкторы, а интерфейс — только константы и абстрактные методы (до Java 8). С Java 8 интерфейсы могут иметь default и static методы.

Ключевые отличия:

  • Класс может наследовать только один абстрактный класс, но множество интерфейсов.
  • Абстрактный класс подходит для общего состояния и поведения, интерфейс — для определения контракта.

Пример:

java
abstract class Animal {
    protected String name;
    public Animal(String name) { this.name = name; }
    abstract void makeSound();
}

interface Swimmable {
    void swim();
}

class Duck extends Animal implements Swimmable {
    public Duck(String name) { super(name); }
    void makeSound() { System.out.println("Quack!"); }
    public void swim() { System.out.println(name + " is swimming"); }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы