Say I have a class called A, and in A there’s a method called myMethod(). Now say I make a subclass of A, called SubA, and in SubA I override myMethod() to make it do what I want it to. Now say I have another method in A called myOtherMethod() which calls myMethod() (from within the same class). I do not override myOtherMethod() in SubA. If I now call myOtherMethod() from inside SubA, it will clearly run A’s myOtherMethod(). But does this now call the myMethod() as defined in A, or as defined (and overridden) in SubA?
To further confuse things, does it matter at all whether myMethod() were an interface method for some interface that class A implemented?
It is easy to try – the fact that A implements an interface or not does not make a difference: