O'Reilly logo

Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition by Ivor Horton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.5. Multiple Levels of Inheritance

As I indicated at the beginning of the chapter, there is nothing to prevent a derived class from being used as a base class. For example, you could derive a class Spaniel from the class Dog without any problem:

Try It Out: A Spaniel Class

Start the Spaniel class off with this minimal code:

class Spaniel extends Dog {
  public Spaniel(String aName) {
    super(aName, "Spaniel");
  }
}

To try this out you can add a Spaniel object to the array theAnimals in the previous example, by changing the statement to:

Animal[] theAnimals = {
                        new Dog("Rover", "Poodle"),
                        new Cat("Max", "Abyssinian"),
                        new Duck("Daffy","Aylesbury"),
                        new Spaniel("Fido")
                      };

Don't forget to add in the comma after the Duck object. Try running the example again a few times.

6.5.1.

6.5.1.1. How It Works

The class Spaniel will inherit members from the class Dog, including the members of Dog that are inherited from the class Animal. The class Dog is a direct superclass, and the class Animal is an indirect superclass of the class Spaniel. The only additional member of Spaniel is the constructor. This calls the Dog class constructor using the keyword super and passes the value of aName and the String object "Spaniel" to it.

If you run the TryPolymorphism class a few times, you should get a choice of the Spaniel object from time to time. Thus, the class Spaniel is also participating in the polymorphic selection of the methods toString() and sound(), which in this case are inherited from the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required