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

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

В интерфейсе переменные по умолчанию public static final (константы), их нельзя изменить после инициализации. В абстрактном классе переменные могут быть любого модификатора доступа и не обязательно final.

Пример:

java
interface MyInterface {
    int CONST = 10; // public static final
}

abstract class MyAbstractClass {
    protected int variable; // может быть изменена
    private static final int CONST = 20; // аналог интерфейсной константы
}

Ключевые различия:

  1. Интерфейсные переменные всегда статические и final
  2. Абстрактный класс может содержать не-final поля
  3. В интерфейсе нельзя объявить private/protected переменные
  4. В абстрактном классе можно объявлять статические/нестатические поля
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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