Inheritance Kya Hota Hai?
Inheritance ek OOP concept hai jisme ek class (child class) doosri class (parent class) ke properties aur methods use kar sakti hai bina dubara likhe.
Reusability = Save time + less code repetition
Java mein Inheritance ka syntax:
class Parent {
// parent class code
}
class Child extends Parent {
// child class code (inherits Parent)
}
1. Single Inheritance
Ek child class ek hi parent class se inherit karti hai.
class Animal {
void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog barks");
}
}
class Main {
public static void main(String[] args) {
Dog d = new Dog();
d.sound(); // inherited
d.bark();
}
}
2. Multilevel Inheritance
Ek class doosri class se inherit karti hai, aur wo class kisi aur se inherit karti hai — 3 level ka chain banta hai.
class Animal {
void eat() {
System.out.println("Animal eats");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog barks");
}
}
class Puppy extends Dog {
void weep() {
System.out.println("Puppy weeps");
}
}
java
CopyEdit
class Main {
public static void main(String[] args) {
Puppy p = new Puppy();
p.eat(); // from Animal
p.bark(); // from Dog
p.weep(); // from Puppy
}
}
3. Hierarchical Inheritance
Ek parent class se multiple child classes inherit karti hain.
class Vehicle {
void start() {
System.out.println("Vehicle starts");
}
}
class Bike extends Vehicle {
void speed() {
System.out.println("Bike is fast");
}
}
class Car extends Vehicle {
void comfort() {
System.out.println("Car is comfortable");
}
}
class Main {
public static void main(String[] args) {
Bike b = new Bike();
b.start();
b.speed();
Car c = new Car();
c.start();
c.comfort();
}
}
Note: Java doesn’t support multiple inheritance using classes (to avoid ambiguity), but interfaces se kar sakte hain.
super
Keyword in Java
Use of super
:
- Parent class ke method ko call karne ke liye
- Parent class ke constructor ko call karne ke liye
- Parent class ke variable ko refer karne ke liye
Example 1: Access parent variable
class Animal {
String type = "Animal";
}
class Dog extends Animal {
String type = "Dog";
void showType() {
System.out.println(super.type); // prints: Animal
}
}
Example 2: Call parent method
java
CopyEdit
class Animal {
void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
void sound() {
super.sound(); // calls parent method
System.out.println("Dog barks");
}
}
Example 3: Call parent constructor
class Animal {
Animal() {
System.out.println("Animal constructor");
}
}
class Dog extends Animal {
Dog() {
super(); // optional, Java calls it by default
System.out.println("Dog constructor");
}
}
Summary
- Single: 1 parent → 1 child Dog extends Animal
- Multilevel: Parent → Child → Grandchild Puppy extends Dog extends Animal
- Hierarchical: 1 parent → multiple children Car, Bike extend Vehicle
super
Keyword Recap
- Access parent variable:
super.variable
- Call parent method:
super.method()
- Call parent constructor:
super()
(Optional)
Comments