Abstraction OOP का वो concept है जो आपके पूरे system को clean, secure और maintainable बनाता है।
Abstraction वही है जो real-life में हर जगह होता है —
आप ATM में पैसा निकालते हैं,
लेकिन अंदर note कैसे घूमता है, किस tray से निकलता है…
आपको कुछ नहीं पता।
आप बस interface (ATM screen) देखते हैं,
बाकी complex logic पूरी तरह hidden होता है।
C# में यही काम Abstraction करता है।
User को सिर्फ ज़रूरी चीज़ दिखाना
और
Complex logic को छुपा लेना
यानी “Hide the Complexity, Show the Essentials”
Example:
कार चलाते हो ( clutch/gear की complexity hidden )
मोबाइल चलाते हो ( OS की complexity hidden )
ATM से पैसा निकालते हो ( bank की logic hidden )
दो तरीकों से:
Abstract Class
Interface
Interface आपने पिछले blog में सीखा—contract बनाता है।
अब Abstract Class समझते हैं।
Abstract class कहती है:
कुछ methods तुम जैसा चाहो वैसे implement करो
कुछ methods मैं पहले से define कर रही हूँ
abstract class GPSDeviceBase
{
public abstract void Parse(string packet); // MUST override
public void Connect()
{
Console.WriteLine("Device Connected");
}
}
Child class को Parse() को override करना ही है।
आपके GPS devices:
G17
S15
A20
TR06
LK209
हर device का packet format अलग होता है।
लेकिन कुछ common operations same:
Device connect
Heartbeat handle
Last updated time set
Base validations
तो इनको abstract class में रखो।
abstract class GPSDeviceBase
{
public string IMEI { get; set; }
public DateTime LastUpdated { get; set; }
public void UpdateTime()
{
LastUpdated = DateTime.Now;
}
public abstract void ParsePacket(string packet);
}
ये कहती है:
UpdateTime() मैं करूँगी
ParsePacket() तुम जैसा चाहो वैसे implement करो
class G17 : GPSDeviceBase
{
public override void ParsePacket(string packet)
{
// G17 specific parsing logic
Console.WriteLine("G17 packet parsed");
}
}
class S15 : GPSDeviceBase
{
public override void ParsePacket(string packet)
{
// S15 specific parsing logic
Console.WriteLine("S15 packet parsed");
}
}
आपका server हमेशा parent type से काम करता है:
void HandleDevice(GPSDeviceBase d, string packet)
{
d.ParsePacket(packet);
d.UpdateTime();
}
Call:
HandleDevice(new G17(), pkt);
HandleDevice(new S15(), pkt);
Server को फर्क नहीं पड़ता कि device:
G17 है
S15 है
Future में कोई नया model
उसे सिर्फ इतना पता है कि ParsePacket() मौजूद होगा।
बाकी parsing logic hidden है → यही Abstraction है।
Bill.Print() → अंदर 10 step hidden
Bill.CalculateTotal() → अंदर tax, discount logic hidden
Exam.CalculateResult()
Attendance.MarkPresent()
User को सिर्फ function दिखता है,
complex logic hidden रहता है।
Pay(amount)
UPI हो, card हो या wallet—logic inside, hidden.
Player.Jump()
Animation, physics, velocity — hidden in method.
| Concept | Meaning |
|---|---|
| Abstraction | Complexity छिपाना |
| Encapsulation | Data को सुरक्षित रखना (via properties) |
दोनों साथ मिलकर clean architecture बनाते हैं।
Abstraction बिना किसी भी बड़े project का code:
गंदा
messy
duplicate
hard to maintain
हो जाता है।
Abstraction आपके code को बनाता है:
✔ Clean
✔ Professional
✔ Easy to change
✔ Easy to extend
✔ Future-proof
GPS servers, banking systems, billing apps—
सभी abstraction पर चलते हैं।
0 Comments
Thanks for Commenting on our blogs, we will revert back with answer of your query.
EmojiThanks & Regards
Sonu Yadav