also in your previous example an int could be class a and a double could be class b even though int doesn't have any explicit operator it's built into the compiler and int wouldn't be explicitly implementing the addable with b interface i believe that's another important difference with interfaces