Polymorphism and Overriding
The next principle of OOP we will cover is called polymorphism. The term "polymorphism" stems from biology in that an organism can take many forms and stages. This term is also used in OOP in that sub-classes can define their unique behaviors yet still share some functionalities with their parent classes.
Let's illustrate this with an example.
In our Person example, we had a method, walk. In our Student class, which inherits from the Person class, we will redefine the same walk method, but now walking to class instead of just walking. In our Lecturer class, we will also redefine the same walk method and this time walk to the staff room instead of walking to class. This method must have the same signature and return type as the walk method in the superclass for this to be considered polymorphic. Here is what the implementation looks like in our Student class:
public class Student extends Person { …. public void walk(int speed){ //Walk to class ...