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)
- Abstraction Level:
- Abstract class mein partial abstraction ho sakti hai (yaani kuch method ki body hoti hai, aur kuch ki nhi).
- Interface mein 100% abstraction hoti hai (until Java 8)
- Methods:
- Abstract class ke andar abstract aur normal (concrete) dono tarah ke methods ho sakte hain.
- Interface mein sirf abstract methods hote hai (until Java 8), lekin ab default aur static methods bhi allowed hai.
- Multiple Inheritance:
- Java mein ek class multiple classes inherit nhi kar sakti, lekin ek class multiple interfaces implement kar sakti hai.
- Keyword Use:
- Abstract class banane ke liye
abstract
keyword use hota hai. - Interface banane ke liye
interface
keyword use hota hai. - Constructor:
- Abstract class mein constructor ho sakta hai.
- Interface mein constructor nhi hota hai.
- 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
Comments