You are right, the interface is to prevent you from giving random names or writing fewer functions during cooperative development. Suppose A and B cooperate to develop software. A gives B an interface (which has been compiled into a dll) and sends it to B. B then references this dll in his own project and develops according to the interface. Before B's development is completed, A can also reference the interface dll in the project. Regardless of whether B has written the specific implementation, A can already ensure that the implementation written by B must have these functions and what function names they have.
In addition to the function of qualifying names, interfaces can also be used as formal parameters like other base classes, and the actual parameters are various specific implementation classes, thereby realizing polymorphism and design patterns.