Интерфейс представляет собой «контракт», то, что необходимо реализовать. Другими словами, интерфейс говорит другим (классам) что-то делать.

например Если у вас есть класс Audi, который реализует интерфейс ICar, в котором определены 2 метода, HasGas (), HasAnyEngineErrors (), что означает, что в классе Car должны быть реализованы эти 2 метода. То же самое, скажем, с классом BMW, который реализует ICar. В нем должны быть реализованы те же 2 метода, но его реализация будет отличаться от реализации класса Audi.

Об интерфейсах можно много сказать, но вы должны помнить, что интерфейсы похожи на набор правил для классов, которые их реализуют. Вы определяете требования класса, и для любого класса, реализующего этот интерфейс, вы знаете, что они будут следовать этим правилам.

PS: Если у вас есть аккаунт в Твиттере, буду благодарен, если вы подпишитесь на https://twitter.com/icosmin_grigore

А если вы не являетесь поклонником Twitter, как я на Facebook https://www.facebook.com/ioncosmingrigore