Abstraction in Java.

By Shakib Ansari | Date: Fri, Jun 6, 2025

Abstraction Kya Hai?

Abstraction ka matlab hai – what to do, not how to do.

Java mein abstraction ka use hota hai:

  • Sirf important functionalities dikhane ke liye
  • Complex logic ko hide karne ke liye
Real life: Tum car chala sakte ho without knowing engine kaise kaam karta hai.

Abstract Class in Java

Definition:

Aisi class jisme abstract method ho sakta hai (method without body) aur normal methods bhi ho sakte hain, use abstract class kehte hain.

Rules:

  • Abstract class ka koi object nahi banaya ja sakta.
  • abstract keyword se define karte hain.
  • Concrete (normal) methods bhi ho sakte hain.

Example:

abstract class Animal {
    abstract void sound();  // abstract method

    void sleep() {
        System.out.println("Animal sleeps");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Dog barks");
    }
}

class Main {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.sound();  // Dog barks
        d.sleep();  // Animal sleeps
    }
}

Interface in Java

Definition:

Interface ek pure abstraction hoti hai – jisme sirf abstract methods (by default) hote hain. Java 8 ke baad default aur static methods bhi support karta hai.

Rules:

  • interface keyword se banate hain
  • Sabhi methods by default public + abstract hote hain
  • Variables public static final hote hain

Example:

interface Animal {
    void sound();  // by default public + abstract
}

class Cat implements Animal {
    public void sound() {
        System.out.println("Cat meows");
    }
}
class Main {
    public static void main(String[] args) {
        Animal a = new Cat();
        a.sound();  // Cat meows
    }
}

Abstract Class vs Interface (Normal Format)

  1. Abstraction Level:
  2. Abstract class mein partial abstraction ho sakti hai (yaani kuch method ki body hoti hai, aur kuch ki nhi).
  3. Interface mein 100% abstraction hoti hai (until Java 8)
  4. Methods:
  5. Abstract class ke andar abstract aur normal (concrete) dono tarah ke methods ho sakte hain.
  6. Interface mein sirf abstract methods hote hai (until Java 8), lekin ab default aur static methods bhi allowed hai.
  7. Multiple Inheritance:
  8. Java mein ek class multiple classes inherit nhi kar sakti, lekin ek class multiple interfaces implement kar sakti hai.
  9. Keyword Use:
  10. Abstract class banane ke liye abstract keyword use hota hai.
  11. Interface banane ke liye interface keyword use hota hai.
  12. Constructor:
  13. Abstract class mein constructor ho sakta hai.
  14. Interface mein constructor nhi hota hai.
  15. Fields (Variables):
  • Abstract class mein normal variables define kiye jaa sakte hain.
  • Interface ke variables hamesha public, static, aur final (constants) hote hain.

Kab Kya Use Karein?

  • Jab tum base class ko kuch default logic dena chahte ho → Use Abstract Class
  • Jab tum pure contract banana chahte ho jisko multiple classes implement karein → Use Interface

Real Life Analogy:

  • Abstract Class → School ek guideline set karta hai + kuch rules directly deta hai
  • Interface → Government ek law banati hai, jo har school ko follow karna padta hai, apne tarike se
About the Author

Hi, I'm Shakib Ansari, Founder and CEO of BeyondMan. I'm a highly adaptive developer who quickly learns new programming languages and delivers innovative solutions with passion and precision.

Shakib Ansari
Programming

Comments