Демистификация объектно-ориентированного программирования: руководство для начинающих по концепциям ООП
Понимание разницы между абстрактными классами и интерфейсами в объектно-ориентированном программировании