Зачем использовать интерфейсы вместо классов

JavaинтерфейсыклассыООПпаттерны проектирования