Понимание разницы между абстрактными классами и интерфейсами в объектно-ориентированном программировании