Ok, and if I implement an interface once the contract is established, I do not overwrite it in that class where I have done it, public class nombre implements interface
but in its previously created subtype of the declared type, which is name , and its subtype would be, for example, subname .
There is no problem with this and it is correct, in the Name class the methods of the contract with the interface will be expressed but without coding and, in the Subname subclass, you can override them with the necessary implementation. On the other hand, if you don't want the Name class to have to implement them, you can make it abstract and this will force its subclasses to implement the contract methods with all interfaces implemented. Normally this is used when the Name class does not have the necessary information to encode those methods and its subclasses will.