Sobes.tech
Junior

Wat is het verschil tussen een interface en een abstracte klasse?

sobes.tech AI

Antwoord van AI

Интерфейс определяет контракт для классов, указывая набор методов, которые должны быть реализованы. Может содержать только сигнатуры методов (до Java 8) и константы. Множественное наследование интерфейсов разрешено.

Абстрактный класс может содержать абстрактные и конкретные методы, поля и конструкторы. Не может быть инстанцирован напрямую. МожетD иметь только одного непосредственного родителя (ограничение на множественное наследование классов).

Основные отличия:

Характеристика Интерфейс Абстрактный класс
Множественное наследование Да (для имплементации) Нет (для расширения)
Методы Только абстрактные (до Java 8), могут быть default и static (с Java 8) Абстрактные и конкретные
Поля Cтатические и финальные константы Любые (static, final, primitive, reference)
Конструкторы Нет Есть
Реализация Реализуется (implements) Расширяется (extends)