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

interface

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

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

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