Abstraction ka matlab hai:
User ko sirf important details dikhana aur baaki complexity chhupa lena.
📌 “Kya kaam kar raha hai” batana, lekin “kaise kar raha hai” chhupana = Abstraction
| Real Life | Abstraction |
|---|---|
| Car ka steering ghumao, car turn karti hai – tumhe internal engine ka kaam nahi pata. | Tum function call karte ho, andar ka logic nahi dikhai deta |
cpp
CopyEdit
#include<iostream>
using namespace std;
class ATM {
public:
void withdrawMoney() {
cout << "Amount Withdrawn Successfully!" << endl;
}
void checkBalance() {
cout << "Your balance is ₹10,000" << endl;
}
private:
void internalBankServer() {
// complex logic: authentication, server comm, etc.
}
};
cpp
CopyEdit
int main() {
ATM user;
user.withdrawMoney(); // ✅ allowed
user.checkBalance(); // ✅ allowed
// user.internalBankServer(); ❌ Not allowed (private)
}
| Step | Description |
|---|---|
Use private |
Jo part user ko nahi dekhna chahiye |
Use public functions |
Sirf jo use karna chahte ho wo expose karo |
| Use Abstract Class | (Advanced) – Base class with pure virtual functions |
| Feature | Abstraction | Encapsulation |
|---|---|---|
| Focus | Hide implementation details | Bind data + methods together |
| Purpose | Simplicity for user | Security & access control |
| Achieved by | Access specifiers + abstract classes | Class with private data & public methods |
| Real World | ATM Machine (dikhai sirf buttons) | Mobile (andar hardware + software) |
cpp
CopyEdit
class Shape {
public:
virtual void draw() = 0; // Pure virtual function (abstract)
};
class Circle : public Shape {
public:
void draw() {
cout << "Drawing Circle" << endl;
}
};