Inheritance/ Interface/ Composition – Releasing the Ever Confusing Knot!


Terminology In layman’s terms: Interface is for “can do/can be treated as” type of relationships. Abstract ( as well as concrete ) classes are for “is a” kind of relationship. Look at these examples: Bird, Mosquito and Horse are Animals. They are related. They inherit common methods from Animal like eat(), metabolize() and reproduce(). Maybe … Read more

Polymorphism Deep Dive: Single vs Double Dispatch


Polymorphism Basics Let’s start from polymorphism basics with an example. Let’s have a hierarchy of shapes that are defined with each of the derived types overloading a base virtual Draw() method.  Next, we used a console application to define a list of each of the shapes. And to iterate over each shape in the collection calling the Draw() method … Read more

OOP basics: Polymorphism Explained!


Polymorphism describes the concept that objects of different types can be accessed through the same interface. Each type can provide its own, independent implementation of this interface. So; is polymorphism just “being able to perform functions of an interface, such as adding, subtracting, etc, on objects of different data types such as integers, floats, etc”? … Read more