The first underlying concept is that method lookup always starts with the singleton class of the object.