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
Why inheritance is used
π Scenario: Imagine you are creating a program for a zoo. You want to represent different animals, but many animals share common features like having a name and age. Instead of writing the same code again and again, you can use inheritance to share these common features.
π― Goal: Build a simple Java program that shows how inheritance helps reuse code by creating a base class Animal and a derived class Dog that inherits from Animal.
π What You'll Learn
Create a base class called Animal with variables name and age
Create a derived class called Dog that inherits from Animal
Add a method displayInfo() in Animal to print the animal's name and age
In Dog, add a method bark() that prints a barking message
Create an object of Dog and call both displayInfo() and bark()
π‘ Why This Matters
π Real World
Inheritance is used in many programs to organize code and avoid repetition, like in games, apps, and websites.
πΌ Career
Understanding inheritance is important for software developers to write clean, reusable, and maintainable code.
Progress0 / 4 steps
1
Create the base class Animal
Create a class called Animal with two variables: String name and int age. Add a constructor that sets these variables.
Java
Hint
Use a constructor to set name and age when creating an Animal.
2
Add a method to display animal info
Inside the Animal class, add a method called displayInfo() that prints the animal's name and age using System.out.println.
Java
Hint
Use System.out.println("Name: " + name + ", Age: " + age); inside displayInfo().
3
Create Dog class that inherits from Animal
Create a class called Dog that extends Animal. Add a constructor in Dog that calls the Animal constructor using super(name, age). Add a method bark() that prints "Woof!".
Java
Hint
Use extends Animal to inherit. Use super(name, age) in the constructor.
4
Create Dog object and call methods
In the main method, create a Dog object with name "Buddy" and age 3. Call the displayInfo() and bark() methods on this object.
Java
Hint
Create the Dog object with new Dog("Buddy", 3). Call displayInfo() and bark().
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
Step 1: Understand inheritance purpose
Inheritance allows a new class to use code from an existing class, avoiding repetition.
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.
Final Answer:
To reuse code from an existing class -> Option C
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
Step 1: Recall Java inheritance syntax
Java uses the keyword extends to inherit from a class.
Step 2: Check each option
class Dog extends Animal {} uses extends, which is correct. Options A, C, and D use wrong keywords.
Final Answer:
class Dog extends Animal {} -> Option B
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
Step 1: Understand method overriding and polymorphism
Dog overrides the sound() method of Animal. The object is of type Dog but referenced as Animal.
Step 2: Determine which method runs
At runtime, the Dog's sound() method runs due to polymorphism, printing "Bark".
Final Answer:
Bark -> Option A
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
Step 1: Check class inheritance syntax
In Java, to inherit a class, use extends keyword. The code misses extends in class Car Vehicle.
Step 2: Verify other options
No semicolon needed after class declaration, methods can be overridden, and Vehicle need not be abstract.
Final Answer:
Incorrect inheritance syntax in class Car -> Option D
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
Step 1: Identify real-world relationship
A SmartPhone is a type of Phone with extra features, so it should inherit Phone.
Step 2: Apply inheritance correctly
SmartPhone should extend Phone and add new methods for camera and GPS.
Final Answer:
Make SmartPhone extend Phone and add new methods -> Option A
Quick Check:
Subclass adds features to superclass [OK]
Hint: Subclass extends superclass to add features [OK]