Parent and child classes help organize code by sharing common features. The child class can use and add to what the parent class has.
Parent and child classes in Java
Start learning this pattern below
Jump into concepts and practice - no test required
class ParentClass { // parent class code } class ChildClass extends ParentClass { // child class code }
The keyword extends is used to create a child class from a parent class.
The child class inherits all public and protected members from the parent class.
Dog is a child of Animal. It changes the sound method.class Animal { void sound() { System.out.println("Some sound"); } } class Dog extends Animal { void sound() { System.out.println("Bark"); } }
Car inherits start() from Vehicle and adds openDoor().class Vehicle { void start() { System.out.println("Vehicle started"); } } class Car extends Vehicle { void openDoor() { System.out.println("Door opened"); } }
This program shows a child class overriding a method and also calling the parent's version using super.
class Parent { void greet() { System.out.println("Hello from Parent"); } } class Child extends Parent { void greet() { System.out.println("Hello from Child"); } void parentGreet() { super.greet(); } } public class Main { public static void main(String[] args) { Child c = new Child(); c.greet(); c.parentGreet(); } }
Use super to call a parent class method from the child class.
Child classes can override parent methods to change behavior.
Constructors are not inherited but the child can call the parent's constructor.
Parent and child classes help organize and reuse code.
Use extends to create a child class.
Child classes inherit and can override parent class methods.
Practice
What keyword is used in Java to create a child class from a parent class?
Solution
Step 1: Understand class inheritance in Java
Java uses a specific keyword to link a child class to a parent class, allowing reuse of code.Step 2: Identify the correct keyword
The keywordextendsis used to create a child class that inherits from a parent class.Final Answer:
extends -> Option AQuick Check:
Inheritance keyword = extends [OK]
extends parent class [OK]- Using 'implements' which is for interfaces
- Using 'inherits' which is not a Java keyword
- Confusing 'super' keyword with inheritance declaration
Which of the following is the correct syntax to declare a child class Dog that inherits from a parent class Animal?
?
Solution
Step 1: Recall Java class inheritance syntax
In Java, the child class uses the keywordextendsfollowed by the parent class name.Step 2: Match the correct syntax
Onlyclass Dog extends Animal {}is valid syntax for inheritance.Final Answer:
class Dog extends Animal {} -> Option CQuick Check:
Syntax for inheritance = extends [OK]
- Using 'inherits' which is not a Java keyword
- Using 'implements' which is for interfaces
- Omitting the keyword between class names
What will be the output of the following Java code?
class Parent {
void show() {
System.out.println("Parent class");
}
}
class Child extends Parent {
void show() {
System.out.println("Child class");
}
}
public class Test {
public static void main(String[] args) {
Parent obj = new Child();
obj.show();
}
}Solution
Step 1: Understand method overriding and polymorphism
The child class overrides theshow()method of the parent class. The object is declared as parent type but created as child type.Step 2: Determine which method runs at runtime
Java uses runtime polymorphism, so the child class'sshow()method is called.Final Answer:
Child class -> Option DQuick Check:
Overridden method runs from child class [OK]
- Thinking parent method runs because of reference type
- Expecting compilation or runtime errors
- Ignoring method overriding rules
Find the error in the following Java code snippet:
class Parent {
void greet() {
System.out.println("Hello from Parent");
}
}
class Child extends Parent {
void greet() {
System.out.println("Hello from Child");
}
}
public class Test {
public static void main(String[] args) {
Child obj = new Parent();
obj.greet();
}
}Solution
Step 1: Analyze object assignment compatibility
In Java, a parent class object cannot be assigned to a child class reference because the parent may lack child-specific features.Step 2: Identify the error in the code
The lineChild obj = new Parent();causes a compile-time error due to incompatible types.Final Answer:
Cannot assign Parent object to Child reference -> Option AQuick Check:
Parent object cannot be assigned to child variable [OK]
- Thinking parent object can be assigned to child reference
- Confusing method return types with assignment errors
- Ignoring Java type compatibility rules
Given the classes below, what will be the output when running new Child().display();?
class Parent {
void display() {
System.out.println("Parent display");
}
}
class Child extends Parent {
void display() {
super.display();
System.out.println("Child display");
}
}Solution
Step 1: Understand use of
The child class'ssuperin child methoddisplay()method callssuper.display(), which runs the parent class'sdisplay()method first.Step 2: Determine output sequence
First, "Parent display" is printed, then "Child display" is printed on the next line.Final Answer:
Parent display Child display -> Option BQuick Check:
super calls parent method before child output [OK]
- Ignoring the call to super.display()
- Expecting only child output
- Thinking super causes error without constructor
