What do you imagine when we mention the word interface? Of course, there is a great possibility that you might think of a window/form for interacting with the users of your system. However, you can go deeper and also imagine the objects of our application interacting with each other. These, in turn, need to know each other, in order to know what messages they can exchange. This is where interfaces come in.
We can visualize the objects of our application as instances of a class in the memory and divide them into two parts—their external visualization and the implementation of their own methods.
Note that so far, we are only focusing our attention on this context. However, interfaces can be found in several other situations. In addition to the aforementioned user interactions and objects in between, entire programs can also communicate, and the...