Well this siis not about implementing the interface or extending a class. IIn thoses cases, you know anyway what you are doing.
However, when a third party code (another module of the application for exemple) manipulatemanipulates you data, this code should not care if you are presenting an interface or a class.
This is the whole point of abstraction. You are presenting to this third party code an object of a given type. This given type ashas some member function you can call. That's enough.
If your type is an interface or a class is your business, not the business of someone using your code. So you shouldn't leak details of your code into this thridthird party code.
By the way, interfaces and classes are reference types at the end. And this is what mattermatters. So this is what your naming convention must emphasysemphasize.