Абстрактный класс — полуразобранный дом: часть стен уже с кодом, часть комнат помечена abstract, пока подкласс не достроит. Интерфейс — чеклист поведений — в классическом виде без полей, хотя на новых JVM у свойств в интерфейсах свои нюансы. В Котлин чаще опираются на интерфейсы + data-классы + sealed; абстрактный класс — когда правда нужна общая состоятельная логика в базе.
Эскиз абстрактного класса