CodeGym /अभ्यासक्रम /जावा कोअर /अमूर्त वर्ग कसे वापरावे

अमूर्त वर्ग कसे वापरावे

जावा कोअर
पातळी 3, धडा 3
उपलब्ध

"हॅलो, अमिगो! काल तुम्हाला अ‍ॅबस्ट्रॅक्ट क्लासेसच्या पद्धतीने शिक्षण दिले होते. आता आमचे ज्ञान वाढवण्याची वेळ आली आहे. मला तुम्हाला अ‍ॅबस्ट्रॅक्ट क्लासेसचा योग्य वापर कसा करायचा ते शिकवायचे आहे."

अमूर्त वर्गासाठी वास्तविक-जगातील साधर्म्य सांगणे कठीण आहे. वर्ग हा सहसा एखाद्या घटकाचा नमुना असतो. परंतु अमूर्त वर्गात अशा पद्धती असतात ज्या लागू केल्या गेल्या नाहीत आणि ज्या पद्धती लागू केल्या गेल्या आहेत त्या असू शकतात. याचा अर्थ काय? अमूर्त वर्गासाठी आपण कोणते साधर्म्य शोधू शकतो? वास्तविक जगात असे काही आहे का?

प्रत्यक्षात, आहे. कन्व्हेयर बेल्टवर जवळजवळ पूर्ण झालेल्या कारच्या चेसिसची कल्पना करा. मी एकतर सूप-अप इंजिन किंवा उच्च कार्यक्षम इंजिन स्थापित करू शकतो. एकतर लेदर इंटीरियर किंवा फॅब्रिक असबाब. कारची विशिष्ट अंमलबजावणी अद्याप निश्चित केलेली नाही. आणखी काय, चेसिसचा वापर अनेक विशिष्ट अंमलबजावणीसाठी केला जाऊ शकतो. पण कार सध्याच्या स्वरूपात कोणालाच नको आहे. हा एक उत्कृष्ट अमूर्त वर्ग आहे : त्याची उदाहरणे तयार करणे अर्थपूर्ण नाही, म्हणून आपण ते तयार करू शकत नाही; वर्गाला अर्थ प्राप्त होतो कारण त्याच्या आधारावर अनेक पूर्ण वारस तयार केले जातील.

"ते पुरेसे सोपे आहे."

पण आणखी अमूर्त साधर्म्य असू शकते. काही अंमलात आणलेल्या पद्धतींसह इंटरफेससारखे अधिक. उदाहरणार्थ, व्यावसायिक दुभाष्याचा विचार करा . स्त्रोत आणि लक्ष्य भाषा निर्दिष्ट केल्याशिवाय, आमच्याकडे एक " अमूर्त अनुवादक " आहे. किंवा अंगरक्षकाचा विचार करा. आम्हाला माहित आहे की त्याने मार्शल आर्टमध्ये प्रभुत्व मिळवले आहे आणि तो त्याच्या क्लायंटचे संरक्षण करू शकतो. परंतु कोणते मार्शल आर्ट आणि तो क्लायंटचे संरक्षण कसे करेल हे प्रत्येक विशिष्ट अंगरक्षकाचे "अंमलबजावणी तपशील" आहेत.

चला एक उदाहरण पाहू:

जावा कोड वर्णन
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
बॉडीगार्ड वर्ग हल्ल्याचा सामना कसा करायचा हे ठरवतो: शूट करा किंवा मार्शल आर्ट्स वापरा.

तथापि, विशिष्ट मार्शल आर्ट निर्दिष्ट केलेले नाही, तरीही आम्हाला खात्री आहे की कौशल्य अस्तित्वात आहे.

आम्ही अनेक भिन्न अंगरक्षक तयार करू शकतो (या वर्गाचा वारसा घेऊन). ते सर्व क्लायंटचे संरक्षण करण्यास आणि हल्लेखोराला शूट करण्यास सक्षम असतील.

"तुम्ही बरोबर आहात. हे काही लागू केलेल्या पद्धतींच्या इंटरफेससारखे आहे."

"होय, या प्रकारचा अमूर्त वर्ग मानक Java SE वर्गांमध्ये सामान्य आहे."

3
टास्क
जावा कोअर, पातळी 3, धडा 3
लॉक केलेले
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. Turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION