When creating a derived object, we usually want to give it a slightly different behavior from parent object. This new behavior can be implemented by adding new methods or properties, but sometimes we need to redefine a method or a property of the parent object. In this case, we are talking about overriding.
Let's consider an example of a
Person definition with a
getFullName() method returning the concatenation of ...