Я читаю некоторый код в Интернете, где кто-то реализовал следующие классы: IMapObj
, который является нормальным интерфейсом, AbstractMapObj
, который является производным от этого интерфейса, и множество объектов карты, которые происходят от AbstrsctMapObj
.
Во всем своем коде он ссылается на IMapObj
, а не AbstractMapObj
.
В чем преимущество использования интерфейса и абстрактного класса вместо просто абстрактного класса? Нет необходимости говорить, что никакой другой класс не является производным от IMapObj
, только AbstractMapObj
.