Yes, I understand that, but the thing that confuses me is, that inside showAdvertisement() there is the static announcement method. Even though the showAdv. is only in Sale class, the announcement method is in both classes, so by the time discount.showAdvertisemnt is reached, the announcement method inside showAdv in Sale, has .announcement where is of type DiscountSale. This is really ...