Разница между реализацией методов интерфейса по умолчанию и наследованием от абстрактного базового класса заключается в следующем:
- Реализация методов интерфейса по умолчанию происходит, когда класс реализует интерфейс и предоставляет реализацию для всех методов, объявленных в интерфейсе по умолчанию. 5 При этом логика метода по умолчанию должна быть относительно других методов интерфейса — они будут независимы от состояния объекта. 3
- Наследование от абстрактного базового класса предполагает, что все конкретные классы, наследующиеся от абстрактного класса, должны определять реализацию (тело метода) для всех абстрактных методов. 5 При этом в абстрактном классе можно добавлять методы с реализацией по умолчанию. 2
Таким образом, реализация методов интерфейса по умолчанию касается реализации конкретных методов интерфейса, а наследование от абстрактного базового класса — это процесс, при котором класс-наследник обязан переопределить все абстрактные методы родительского класса (кроме тех, которые имеют реализацию по умолчанию) или сделать весь дочерний класс абстрактным. 2