Hello दोस्तों! आज हम इस पोस्ट में Abstract Class in Java in Hindi (जावा में Abstract class क्या है?) के बारें में पूरे विस्तार से पढेंगे और इसके examples को भी देखेंगे. इसे मैंने आसान भाषा में लिखा है. आप इसे पूरा पढ़िए आपको यह आसानी से समझ आ जायेगा.
Abstract Class in Java in Hindi
वह Class जो abstract कीवर्ड के साथ declare होती हैं उसे Abstract Class कहते हैं. इसके पास abstract और non-abstract methods हो सकती हैं. किसी सामान्य class के पास abstract methods नहीं होती है.
- abstract class को हमेशा abstract keyword के साथ declare करना जरुरी होता है.
- इसके पास abstract और non-abstract methods हो सकती है.
- इसे instantiate नहीं किया जा सकता अर्थात् इसका प्रयोग objects को create करने के लिए नहीं कर सकते.
- इसके पास constructors और static methods भी हो सकते हैं.
- abstract class को use करने के लिए, हमें इसे दूसरी class से inherit करना होगा और abstract methods को implementation प्रदान करनी होगी.
- इसके पास final methods भी हो सकती हैं.
- abstract methods के पास body नहीं होती है.
तो चलिए अब हम abstract class को आगे पढने से पहले abstraction के बारें में समझते है.
Abstraction in Java
Abstraction एक प्रक्रिया है जिसमें implementation को छुपा दिया जाता है और user को केवल functionality को ही show किया जाता है.
दूसरे शब्दों में कहें तो, “यह user को केवल आवश्यक जानकारी ही show करता है और जो background की details होती हैं उन्हें hide कर दिया जाता है.”
उदाहरण के लिए:- हम whatsapp में message को type करते है और उसे send कर देते है. लेकिन हमें उसकी internal working के बारें में पता नहीं होता कि message कैसे send होता है.
java में abstraction को प्राप्त करने के दो तरीके होते हैं:-
- Abstract class
- Interface
Abstract method क्या होती है?
वह मेथड जो abstract keyword के द्वारा declare होती है उसे abstract method कहते है. इस मेथड के पास implementation नहीं होता है अर्थात् इसके पास body नहीं होती.
- इसमें abstract कीवर्ड को method name के आगे लिखा जाता है.
- एक abstract मेथड एक method signature को contain करती है परन्तु इसमें body नहीं होती.
- curly braces के बजाय, इस method के अंत में semicolon ; लगा होता है.
इसका example:-
abstract void showDetail ();//no method body and abstract
Abstract class और method का example
नीचे आपको इसका सरल उदाहरण दिया है. इसके पास एक eat() नाम की abstract method है. और इसका implementation, Dog नाम की क्लास ने प्रदान किया है.
abstract class Animal{
abstract void eat();
}
class Dog extends Animal{
void eat(){
System.out.println("they are eating food");
}
public static void main(String args[]){
Animal obj = new Dog();
obj.eat();
}
}
इसका आउटपुट:- they are eating food
Abstract Class के constructor को access करना –
एक abstract class के पास किसी सामान्य class की तरह ही constructors हो सकते हैं. और हम, subclass से super keyword का प्रयोग करके constructor को access कर सकते हैं.
उदाहरण के लिए:-
abstract class Animal {
Animal() {
….
}
}
class Dog extends Animal {
Dog() {
super();
...
}
}
यहाँ पर हमने Dog के constructor के अंदर super() keyword का प्रयोग Animal के constructor को access करने के लिए किया है. यहाँ ध्यान देने वाली बात यह है कि super हमेशा subclass constructor का सबसे पहला statement होना चाहिए.
इसे पढ़ें:- Super Keyword क्या है?
Abstarct Class के कुछ महत्वपूर्ण बिंदु (summary) –
नीचे आपको इसके कुछ महत्वपूर्ण points दिए गये हैं जिन्हें हमेशा ध्यान में रखना चाहिए.
- abstract कीवर्ड का प्रयोग करके abstract class को create किया जाता है.
- इस class से objects को create नहीं किया जा सकता.
- हम abstract कीवर्ड का प्रयोग करके abstract methods को create कर सकते हैं और इस प्रकार की methods के पास body नहीं होती.
- किसी abstract class के पास abstract method का होना आवश्यक नहीं होता. हम बिना abstract methods के भी abstract class को create कर सकते हैं.
- यदि abstract class के पास कोई भी method implementation नहीं है तो हमें interface का इस्तेमाल करना चाहिए क्योंकि जावा multiple inheritance को सपोर्ट नहीं करता है.
- यह क्लास interface methods के implementation को प्रदान किये बिना interface को implement कर सकती है.
- java में, हम abstract class को दूसरी अन्य class की तरह run कर सकते है यदि इसके पास main() method होती है.
इसे देखें:- जावा के सभी नोट्स
निवेदन:- मुझे उम्मीद है कि यह आर्टिकल आपके लिए उपयोगी रहा होगा. इसे अपने friends और classmates के साथ अवश्य share कीजिये और आपके जो भी questions है उन्हें नीचे comment करके बताइए. Thanks.