Java Inheritance - Questions and Answers
1. Inheritance Basics
Easy:
Q1: What is inheritance in Java?
A: Inheritance allows a subclass to acquire properties and methods of a superclass.
Q2: Write a program to demonstrate simple inheritance.
class Animal {
void eat() { System.out.println("Eating..."); }
class Dog extends Animal {
void bark() { System.out.println("Barking..."); }
public static void main(String[] args) {
Dog d = new Dog();
d.eat(); d.bark();
Moderate:
Q3: Can a subclass access private members of the superclass?
A: No, private members are not inherited.
Tough:
Q4: How does Java handle the diamond problem?
A: Java avoids it by not supporting multiple inheritance with classes. It uses interfaces instead.
2. Member Access and Inheritance
Easy:
Q1: Which members are inherited?
Java Inheritance - Questions and Answers
A: public, protected, and default (same package); private members are not.
Moderate:
Program:
class Parent {
public int a = 10;
protected int b = 20;
private int c = 30;
class Child extends Parent {
void show() {
System.out.println(a); // OK
System.out.println(b); // OK
// System.out.println(c); // Error
3. Using super
Easy:
Q1: What does 'super' do?
A: Refers to immediate parent class object.
Moderate:
Q2: Program using super to call parent constructor:
class Animal {
Animal() { System.out.println("Animal constructor"); }
class Dog extends Animal {
Dog() {
Java Inheritance - Questions and Answers
super();
System.out.println("Dog constructor");
4. Multilevel Hierarchy
Easy:
Q: What is multilevel inheritance?
A: A class inherits from another class which is itself a subclass.
Moderate:
Program:
class A { void methodA() { System.out.println("A"); } }
class B extends A { void methodB() { System.out.println("B"); } }
class C extends B { void methodC() { System.out.println("C"); } }
5. Method Overriding
Easy:
Q: Can static methods be overridden?
A: No.
Moderate:
class Parent { void show() { System.out.println("Parent"); } }
class Child extends Parent { void show() { System.out.println("Child"); } }
Tough:
Q: What is runtime polymorphism?
A: Dynamic method dispatch at runtime using overridden methods.
Java Inheritance - Questions and Answers
6. Abstract Classes
Easy:
Q: Can abstract classes have constructors?
A: Yes.
Moderate:
abstract class Shape {
abstract void draw();
void display() { System.out.println("Shape"); }
class Circle extends Shape {
void draw() { System.out.println("Drawing Circle"); }
7. final with Inheritance
Easy:
Q: What does final mean?
A: Final variables can't be reassigned, final methods can't be overridden, and final classes can't be extended.
Moderate:
class A {
final void show() { System.out.println("Final method"); }
class B extends A {
// void show() {} // Error
8. final to Prevent Overriding
Java Inheritance - Questions and Answers
Easy:
Q: Can a final method be overridden?
A: No.
9. final to Prevent Inheritance
Easy:
Q: Can a final class be extended?
A: No.
Moderate:
final class A {
void msg() { System.out.println("Final class"); }
// class B extends A {} // Error