Bird
Raised Fist0
Javaprogramming~10 mins

Why inheritance is used in Java - Visual Breakdown

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Why inheritance is used
Define Base Class
Create Derived Class
Derived Class inherits Base Class members
Use Derived Class object
Access inherited and own members
Inheritance lets a new class reuse code from an existing class, making programming easier and organized.
Execution Sample
Java
class Animal {
  void sound() { System.out.println("Animal sound"); }
}
class Dog extends Animal {
  void bark() { System.out.println("Dog barks"); }
}
public class Main {
  public static void main(String[] args) {
    Dog d = new Dog();
    d.sound();
    d.bark();
  }
}
This code shows a Dog class inheriting from Animal, so Dog can use Animal's sound method and its own bark method.
Execution Table
StepActionObjectMethod CalledOutput
1Create Dog objectd--
2Call sound() methoddsound()Animal sound
3Call bark() methoddbark()Dog barks
4End of execution---
💡 All methods called on Dog object; inherited and own methods executed.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
dnullDog object createdNo changeNo changeDog object exists
Key Moments - 2 Insights
Why can the Dog object call the sound() method even though it is not defined in Dog?
Because Dog inherits from Animal, it gets access to Animal's methods like sound(), as shown in execution_table step 2.
Does inheritance mean Dog copies Animal's code?
No, Dog reuses Animal's code through inheritance without copying, so changes in Animal affect Dog too.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what output appears when d.sound() is called?
ADog barks
BNo output
CAnimal sound
DError
💡 Hint
Check execution_table row 2 where sound() is called on d.
At which step is the Dog object created according to the execution_table?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at execution_table row 1 describing object creation.
If Dog did not inherit Animal, what would happen when calling d.sound()?
AIt would print 'Animal sound'
BIt would cause a compile-time error
CIt would print 'Dog barks'
DIt would print nothing
💡 Hint
Inheritance allows access to sound(); without it, method is undefined for Dog.
Concept Snapshot
Inheritance lets a class reuse code from another class.
Syntax: class Child extends Parent {}
Child gets Parent's methods and fields.
This avoids code duplication.
It helps organize related classes.
Use inheritance to build on existing code.
Full Transcript
Inheritance in Java allows one class to use the properties and methods of another class. In the example, Dog inherits from Animal, so Dog can call Animal's sound() method. This means Dog reuses code from Animal without rewriting it. The execution steps show creating a Dog object, calling inherited and own methods, and printing outputs. This helps programmers write less code and keep it organized. If Dog did not inherit Animal, calling sound() on Dog would cause an error. Inheritance is a key way to build relationships between classes and share behavior.

Practice

(1/5)
1. Why do we use inheritance in Java?
easy
A. To make programs run faster
B. To create unrelated classes
C. To reuse code from an existing class
D. To avoid using methods

Solution

  1. Step 1: Understand inheritance purpose

    Inheritance allows a new class to use code from an existing class, avoiding repetition.
  2. Step 2: Compare options

    Only To reuse code from an existing class correctly states code reuse. Others are incorrect because inheritance does not create unrelated classes, speed up programs directly, or avoid methods.
  3. Final Answer:

    To reuse code from an existing class -> Option C
  4. Quick Check:

    Inheritance = Code reuse [OK]
Hint: Inheritance means reusing code from another class [OK]
Common Mistakes:
  • Thinking inheritance speeds up the program
  • Believing inheritance creates unrelated classes
  • Confusing inheritance with method removal
2. Which of the following is the correct syntax to inherit class Animal in Java?
easy
A. class Dog inherits Animal {}
B. class Dog extends Animal {}
C. class Dog implements Animal {}
D. class Dog uses Animal {}

Solution

  1. Step 1: Recall Java inheritance syntax

    Java uses the keyword extends to inherit from a class.
  2. Step 2: Check each option

    class Dog extends Animal {} uses extends, which is correct. Options A, C, and D use wrong keywords.
  3. Final Answer:

    class Dog extends Animal {} -> Option B
  4. Quick Check:

    Inheritance keyword = extends [OK]
Hint: Use 'extends' keyword to inherit a class in Java [OK]
Common Mistakes:
  • Using 'inherits' instead of 'extends'
  • Confusing 'implements' with class inheritance
  • Using 'uses' keyword which doesn't exist
3. What will be the output of this Java code?
class Animal {
  void sound() { System.out.println("Animal sound"); }
}
class Dog extends Animal {
  void sound() { System.out.println("Bark"); }
}
public class Test {
  public static void main(String[] args) {
    Animal a = new Dog();
    a.sound();
  }
}
medium
A. Bark
B. Runtime error
C. Compilation error
D. Animal sound

Solution

  1. Step 1: Understand method overriding and polymorphism

    Dog overrides the sound() method of Animal. The object is of type Dog but referenced as Animal.
  2. Step 2: Determine which method runs

    At runtime, the Dog's sound() method runs due to polymorphism, printing "Bark".
  3. Final Answer:

    Bark -> Option A
  4. Quick Check:

    Overridden method runs = Bark [OK]
Hint: Overridden methods run from actual object type [OK]
Common Mistakes:
  • Expecting base class method output
  • Thinking it causes compile or runtime error
  • Confusing reference type with object type
4. Find the error in this inheritance code:
class Vehicle {
  void start() { System.out.println("Vehicle started"); }
}
class Car Vehicle {
  void start() { System.out.println("Car started"); }
}
medium
A. Class Vehicle should be abstract
B. Missing semicolon after class Vehicle
C. Method start() cannot be overridden
D. Incorrect inheritance syntax in class Car

Solution

  1. Step 1: Check class inheritance syntax

    In Java, to inherit a class, use extends keyword. The code misses extends in class Car Vehicle.
  2. Step 2: Verify other options

    No semicolon needed after class declaration, methods can be overridden, and Vehicle need not be abstract.
  3. Final Answer:

    Incorrect inheritance syntax in class Car -> Option D
  4. Quick Check:

    Use 'extends' keyword for inheritance [OK]
Hint: Inheritance needs 'extends' keyword in class declaration [OK]
Common Mistakes:
  • Forgetting 'extends' keyword
  • Adding semicolon after class header
  • Thinking methods can't be overridden
5. You want to create a class SmartPhone that has all features of Phone plus new features like camera and GPS. Which is the best way to do this using inheritance?
hard
A. Make SmartPhone extend Phone and add new methods
B. Make Phone extend SmartPhone and add new methods
C. Create SmartPhone and Phone as separate classes with no relation
D. Copy all Phone code into SmartPhone without inheritance

Solution

  1. Step 1: Identify real-world relationship

    A SmartPhone is a type of Phone with extra features, so it should inherit Phone.
  2. Step 2: Apply inheritance correctly

    SmartPhone should extend Phone and add new methods for camera and GPS.
  3. Final Answer:

    Make SmartPhone extend Phone and add new methods -> Option A
  4. Quick Check:

    Subclass adds features to superclass [OK]
Hint: Subclass extends superclass to add features [OK]
Common Mistakes:
  • Reversing inheritance direction
  • Not using inheritance for related classes
  • Copy-pasting code instead of extending