Virtual & Non-virtual Overriding
Overriding: a method in a parent class is replaced in a child class by a method having exact same type signature.
In C++, overriding uses the keyword virtual.
The variable this is a pointer in C++, a variable in Java.