I have been reading some code theory related to multiple inheritance and interfaces. It said in all the places that interface is a class without implementation.
1) What is the use of not having implemented methods/functions in an interface? Is it to support multiple implementations of the same method in different classes that inherit an interface?
2) Most of the code samples out there seem to show void interface methods. Are interface functions/methods always void?
To question 1: yes, that is one reason to use interfaces. Interfaces are often used as an API for a component. The actual implementation can be unknown to the consumer, supporting loose coupling and testability through unit tests.
Regarding question 2: no, interface methods can have the same method signatures as class methods.