Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🟣 OOP  ·  Lesson 21

Abstraction and Interfaces

Abstraction क्या है

Abstraction का मतलब है details छिपाकर सिर्फ़ जो मायने रखता है वो दिखाना। car का pedal एक सरल interface है — आप उसे engine की अंदरूनी कार्यप्रणाली जाने बिना दबाते हैं। Java में, abstraction abstract classes और interfaces से हासिल होता है, जो बताते हैं क्या करना है, हर class को तय करने देकर कैसे।

💡 Abstract class = कुछ code वाला अधूरा blueprint। Interface = class को क्या करना है इसका शुद्ध contract।

Abstract class

abstract class Shape {
    abstract double area();          // कोई body नहीं — भरनी ज़रूरी
    void describe() {                // code वाली normal method
        System.out.println("Area: " + area());
    }
}
class Circle extends Shape {
    double r = 5;
    double area() { return 3.14 * r * r; }
}
Area: 78.5

abstract class सीधे नहीं बनाई जा सकती। इसमें abstract methods (कोई body नहीं) और normal दोनों मिल सकती हैं। Child इसे extends करती है और abstract methods पूरी करनी होती हैं।

Interface

interface Animal {
    void sound();        // सिर्फ़ method नाम (contract)
    void eat();
}

Interface शुद्ध contract है — methods की list जो class देने का वादा करती है, अंदर कोई code नहीं (पारंपरिक रूप से)। यह बताता है क्या होना चाहिए, कैसे काम करता है नहीं।

Interface implement करना

class Dog implements Animal {
    public void sound() { System.out.println("Woof"); }
    public void eat()   { System.out.println("Dog eating"); }
}
// इस्तेमाल:
Animal a = new Dog();
a.sound();
Woof

Class interface पूरा करने को implements इस्तेमाल करती है, और interface की हर method define करनी होती है। यह पक्का करता है किसी भी Animal के पास sound() और eat() है।

कई interfaces

interface Swimmer { void swim(); }
interface Walker  { void walk(); }

class Duck implements Swimmer, Walker {
    public void swim() { System.out.println("swimming"); }
    public void walk() { System.out.println("walking"); }
}

Class एक साथ कई interfaces implement कर सकती है — जो classes के साथ संभव नहीं। ऐसे Java multiple class inheritance बिना capabilities जोड़ती है।

Abstract class बनाम interface

बातAbstract classInterface
इस्तेमाल keywordextendsimplements
कितनेसिर्फ़ एकएक साथ कई
Fieldsहाँसिर्फ़ constants
Normal methodsहाँज़्यादातर नाम (contract)
किसके लिए बढ़ियासाझा code + is-aएक साझा capability

आम गलतियाँ

  • Abstract class instantiate करना। इस पर new इस्तेमाल नहीं कर सकते — पहले extend कीजिए।
  • सारी methods implement करना भूलना। Class को हर interface method define करनी होती है (या abstract हो)।
  • extends और implements मिला देना। Classes को extends, interfaces को implements।
  • दो classes extend करने की कोशिश। इसके बजाय कई interfaces इस्तेमाल कीजिए।

सारांश

  • Abstraction details छिपाकर सिर्फ़ ज़रूरी दिखाता है।
  • Abstract class normal और abstract methods मिलाती है; extends से extend कीजिए।
  • Interface methods का contract है; implements से पूरा कीजिए।
  • Class कई interfaces implement कर सकती है पर सिर्फ़ एक class extend।
  • साझा code को abstract classes, साझा capabilities को interfaces इस्तेमाल कीजिए।

आगे, inheritance दोहराइए, या access control कीजिए access modifiers से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Java में abstraction क्या है?
Abstraction का मतलब है आंतरिक details छिपाकर सिर्फ़ ज़रूरी features दिखाना। Java में आप इसे abstract classes और interfaces से हासिल करते हैं, जो बताते हैं class को क्या करना है, कैसे नहीं, हर class को details भरने देकर।
Abstract class क्या है?
Abstract class abstract से चिह्नित class है जो अकेले instantiate नहीं हो सकती। इसमें normal methods (code के साथ) और abstract methods (सिर्फ़ नाम, कोई body नहीं) दोनों हो सकती हैं जिन्हें child classes पूरा करती हैं।
Abstract class और interface में क्या अंतर है?
Abstract class में fields और normal methods हो सकती हैं और extends से extend होती है (सिर्फ़ एक)। Interface ज़्यादातर method नाम हैं, implements से implement होती है, और class कई interfaces implement कर सकती है।
extends और implements में क्या अंतर है?
extends class से inherit करने को (abstract class समेत) इस्तेमाल होता है, और आप सिर्फ़ एक extend कर सकते हैं। implements interface पूरा करने को इस्तेमाल होता है, और class कई interfaces implement कर सकती है।
Interface बनाम abstract class कब इस्तेमाल करूँ?
Abstract class तब जब classes साझा code और साफ़ "is-a" संबंध रखें। Interface तब जब ऐसी capability define करनी हो जो असंबंधित classes साझा कर सकें, या जब class को कई ऐसी capabilities चाहिए।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicEncapsulation आपकी प्रगति: 21 / 61 (34%) · Lesson 22 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें