Understanding inheritance
When a class inherits from another class, it inherits all the members that compose the parent class, which is also known as the
superclass. The class that inherits the elements is known as a subclass of the superclass. For example, the VirtualBird subclass inherits all the instance fields, class fields, instance methods, and class methods defined in the VirtualAnimal superclass.
Tip
In Java 9, a subclass doesn't inherit any constructor from its superclass. However, it is possible to call the constructors defined in the superclass and we will do this in the next examples. Only the usage of the private access modifier in any constructor defined in a superclass can make it impossible for a subclass to call this constructor.
The VirtualAnimal abstract class is the baseline for our class hierarchy. We say that it is an abstract class
because we cannot create instances of the VirtualAnimal class. Instead, we must create instances of the specific subclasses of VirtualAnimal...