Lesson 10 of 20

Inheritance

Inheritance

A subclass extends a parent class, inheriting its fields and methods:

class Animal {
    String name;
    Animal(String name) { this.name = name; }
    String speak() { return name + " makes a sound"; }
}

class Dog extends Animal {
    Dog(String name) { super(name); }  // call parent constructor

    @Override
    String speak() { return name + " barks"; }  // override
}

Animal a = new Dog("Rex");
System.out.println(a.speak());  // Rex barks

Key Points

  • extends declares inheritance
  • super(args) calls the parent constructor (must be first line)
  • @Override marks overridden methods (optional but good practice)
  • Java has single inheritance for classes

Polymorphism

An Animal reference can hold any subclass:

Animal[] pets = {new Dog("Rex"), new Cat("Luna")};
for (Animal a : pets) {
    System.out.println(a.speak());  // calls the right version
}

Your Task

Create Animal, Dog, and Cat classes. Dog.speak() appends "!" to the parent's result. Print each animal's speak() as shown.

TeaVM (WASM) loading...
Loading...
Click "Run" to execute your code.