Inheritance models "is-a" relationships: class Dog extends Animal. Subclasses inherit fields and methods, can override behavior, and call superclass logic with super.
extends keyword
class Animal {
void speak() { System.out.println("..."); }
}
class Dog extends Animal {
@Override
void speak() { System.out.println("Woof"); }
}
Java supports single inheritance for classes—one direct superclass only. Interfaces provide multiple type contracts.
Important interview questions and answers
- Q: extends vs implements?
A:extendsfor classes (single);implementsfor interfaces (multiple allowed). - Q: What is @Override?
A: Documents intent; compiler verifies a valid override exists. - Q: Composition vs inheritance?
A: Favor composition ("has-a") when behavior can be delegated without fragile hierarchies.
Self-check
- How many classes can a Java class extend?
- What keyword calls the parent constructor?
Tip: Favor composition when behavior can be delegated—deep inheritance trees become fragile in large codebases.
Interview prep
- extends vs implements?
extendsfor single class inheritance;implementsfor one or more interfaces defining behavior contracts.