alikaras wrote:creating object as base class from deriveted class which will be execute at runtime with late binding
As you may easily note, this mechanism (polymorphism) only needs method signatures of the base classes
(not else). Hence interfaces ('contracts' because they just
provide such methods signatures) are perfectly valid for substituting base classes in the polymorphism mechanism.