June 27, 2023
My attitude has always been, "who the heck needs interfaces?". I program in other OO languages (ruby, python) and don't find interfaces. One explanation is that interfaces can provide something like multiple inheritance (something else I don't find myself needing). Ruby has "mixins" to allow something resembling multiple inheritance. Python allows multiple inheritance (another strike against it) so there is no need for interfaces.
But let's forget about this multiple inheritance business and take a look at what a Java/Kotlin interface is.
An interface looks a lot like a class. It has abstract methods (methods with signatures but no implementation) along with constants (final variables). The interface does not specify which class provides the implementation. A class that does provide the implementation will look like this:public class Circle implements Shape { ... }Here "Shape" is the interface and "Circle" is the class that implements it. This means that Circle should provide the expected methods.
Adventures in Computing / tom@mmto.org