When I see a bird that walks like a duck, swims like a duck and quacks like a duck, I call that bird a duck.
It means that an object with the methods
quack() can always be treated as a
dog, which also implements the
walk() method, it could be treated like a
duck as long as none of the other methods get called. So you never can be sure if a given object has implemented the necessary method until you proof it.