एब्स के बीच अंतरtracटी क्लास और इंटरफ़ेस में Java
एब्स के बीच मुख्य अंतरtracटी क्लास और इंटरफ़ेस में Java
- Interface में, एक क्लास कई इंटरफेस को इम्प्लीमेंट कर सकती है, जबकि एक क्लास केवल एक ही Abs इंटरफेस को इनहेरिट कर सकती है।tracटी क्लास।
- इंटरफ़ेस में एक्सेस मॉडिफ़ायर नहीं होते हैं। इंटरफ़ेस के अंदर परिभाषित हर चीज़ को पब्लिक मॉडिफ़ायर वाला माना जाता है, जबकि Abstract क्लास में एक्सेस मॉडिफायर हो सकता है।
- इंटरफ़ेस में डेटा फ़ील्ड नहीं हो सकते, जबकि एब्सtract क्लास में डेटा फ़ील्ड हो सकते हैं।
- इंटरफेस किसी क्लास की परिधीय क्षमताओं को परिभाषित करने में मदद करते हैं, जबकि एक एब्सtract क्लास किसी क्लास की पहचान को परिभाषित करती है।
एब्स क्या है?tracटी क्लास?
एक वर्ग जिसमें पूर्णtracइसके डिक्लेरेशन में t कीवर्ड को abs कहा जाता हैtracटी क्लास. एब्सtracटी कक्षाओं में शून्य या अधिक एब्स होने चाहिएtracटी विधियाँ। अर्थात्, बिना बॉडी वाली विधियाँ। इसमें कई ठोस विधियाँ हो सकती हैं।tract क्लास आपको कंक्रीट क्लास के लिए ब्लूप्रिंट बनाने की अनुमति देती हैं। लेकिन इनहेरिट करने वाली क्लास को एब्सोल्यूट क्लास को इम्प्लीमेंट करना चाहिए।tracटी विधि. एब्सtract क्लास को इंस्टैंशिएट नहीं किया जा सकता है।
इंटरफेस का उपयोग करने के महत्वपूर्ण कारण
- प्राप्त करने के लिए इंटरफ़ेस का उपयोग किया जाता है पेटtracउत्पादन.
- रन टाइम पर गतिशील विधि समाधान का समर्थन करने के लिए डिज़ाइन किया गया
- यह आपको ढीला युग्मन प्राप्त करने में मदद करता है।
- आपको किसी विधि की परिभाषा को वंशानुक्रम पदानुक्रम से अलग करने की अनुमति देता है
एब्स का उपयोग करने के महत्वपूर्ण कारणtracटी क्लास
- Abstract क्लास अपनी सबक्लास के लिए डिफ़ॉल्ट कार्यक्षमता प्रदान करती हैं।
- भविष्य की विशिष्ट कक्षाओं के लिए एक टेम्पलेट प्रदान करता है
- आपको इसके उपवर्गों के लिए एक सामान्य इंटरफ़ेस परिभाषित करने में मदद करता है
- Abstract क्लास कोड के पुन: उपयोग की अनुमति देता है।
इंटरफ़ेस क्या है?
इंटरफ़ेस एक ब्लूप्रिंट है जिसका उपयोग क्लास को इम्प्लीमेंट करने के लिए किया जा सकता है। इंटरफ़ेस में कोई भी कंक्रीट मेथड (कोड वाली मेथड) नहीं होती हैं। इंटरफ़ेस की सभी मेथड एब्सोल्यूट होती हैं।tracइंटरफ़ेस को इंस्टैंशिएट नहीं किया जा सकता। हालांकि, इंटरफ़ेस को इम्प्लीमेंट करने वाली क्लास को इंस्टैंशिएट किया जा सकता है। इंटरफ़ेस में कभी भी इंस्टेंस वैरिएबल नहीं होते हैं, लेकिन उनमें पब्लिक स्टैटिक फ़ाइनल वैरिएबल (यानी, कॉन्स्टेंट क्लास वैरिएबल) हो सकते हैं।
इंटरफ़ेस और एबीएस के बीच अंतरtracटी क्लास में Java
एक एब्सtracएक क्लास आपको ऐसी कार्यक्षमता बनाने की अनुमति देती है जिसे सबक्लास लागू या ओवरराइड कर सकते हैं, जबकि एक इंटरफेस केवल कार्यक्षमता को बताने की अनुमति देता है, उसे लागू करने की नहीं। एक क्लास केवल एक एब्सोल्यूट क्लास को ही एक्सटेंड कर सकती है।tracएक क्लास कई इंटरफेस को इम्प्लीमेंट कर सकती है, जबकि एक क्लास t क्लास हो सकती है।
| पैरामीटर्स | इंटरफेस | Abstracटी वर्ग |
|---|---|---|
| गति | धीरे | तेज |
| एकाधिक वंशानुक्रम | कई इंटरफेस लागू करें | केवल एक एब्सtracटी वर्ग |
| संरचना | Abstracटी विधियाँ | Abstracटी और कंक्रीट विधियाँ |
| कब इस्तेमाल करें | भविष्य के विस्तार के बारे मे | स्वतंत्रता से बचने के लिए |
| उत्तराधिकार/ कार्यान्वयन | एक क्लास कई इंटरफेस को लागू कर सकता है | यह क्लास केवल एक Abs को इनहेरिट कर सकती हैtracटी क्लास |
| डिफ़ॉल्ट कार्यान्वयन | इंटरफ़ेस में नई सामग्री जोड़ते समय, सभी कार्यान्वयनकर्ताओं को ढूंढना और नई परिभाषित सामग्री को कार्यान्वित करना एक दुःस्वप्न जैसा होता है। | एब्स के मामले मेंtracटी क्लास में, आप डिफ़ॉल्ट कार्यान्वयन का लाभ उठा सकते हैं। |
| एक्सेस संशोधक | इंटरफ़ेस में एक्सेस संशोधक नहीं हैं। इंटरफ़ेस के अंदर परिभाषित हर चीज़ को सार्वजनिक संशोधक माना जाता है। | Abstract क्लास में एक्सेस मॉडिफायर हो सकता है। |
| कब इस्तेमाल करें | जब विभिन्न कार्यान्वयन केवल विधि हस्ताक्षर साझा करते हैं तो इंटरफ़ेस का उपयोग करना बेहतर होता है। मूल्य प्रकारों का बहुरूपी पदानुक्रम। | इसका प्रयोग तब किया जाना चाहिए जब एक ही प्रकार के विभिन्न कार्यान्वयन एक समान व्यवहार साझा करते हों। |
| डेटा फ़ील्ड | इंटरफ़ेस में डेटा फ़ील्ड नहीं हो सकते. | क्लास में डेटा फ़ील्ड हो सकते हैं. |
| एकाधिक विरासत डिफ़ॉल्ट | एक क्लास अनेक इंटरफेस क्रियान्वित कर सकता है। | एक क्लास केवल एक एब्स को इनहेरिट करती हैtracटी क्लास। |
| कार्यान्वयन | एक इंटरफ़ेस निरपेक्ष हैtracताकि यह कोई कोड प्रदान न कर सके। | एक एब्सtract क्लास पूर्ण, डिफ़ॉल्ट कोड प्रदान कर सकती है जिसे ओवरराइड किया जाना चाहिए। |
| एक्सेस संशोधक का उपयोग | आप विधि, गुण आदि के लिए एक्सेस संशोधक का उपयोग नहीं कर सकते। | आप एब्स का उपयोग कर सकते हैंtract क्लास जिसमें एक्सेस मॉडिफायर शामिल हैं। |
| प्रयोग | इंटरफेस किसी वर्ग की परिधीय क्षमताओं को परिभाषित करने में मदद करते हैं। | एक एब्सtract क्लास किसी क्लास की पहचान को परिभाषित करती है। |
| परिभाषित क्षेत्र | कोई फ़ील्ड परिभाषित नहीं किया जा सकता | एक एब्सtract क्लास आपको फ़ील्ड और स्थिरांक दोनों को परिभाषित करने की अनुमति देती है। |
| विरासत | एक इंटरफ़ेस अनेक इंटरफ़ेस को इनहेरिट कर सकता है, लेकिन एक क्लास को इनहेरिट नहीं कर सकता। | एक एब्सtract क्लास किसी अन्य क्लास और कई इंटरफेस को इनहेरिट कर सकती है। |
| कन्स्ट्रक्टर या डिस्ट्रक्टर | एक इंटरफ़ेस कन्स्ट्रक्टर्स या डिस्ट्रक्टर्स घोषित नहीं कर सकता। | एक एब्सtract क्लास कंस्ट्रक्टर और डिस्ट्रक्टर घोषित कर सकती है। |
| एक्सटेंशन की सीमा | यह किसी भी संख्या में इंटरफेस का विस्तार कर सकता है। | यह केवल एक वर्ग या एक एब्स का विस्तार कर सकता हैtracएक समय में एक ही कक्षा। |
| Abstracटी कीवर्ड | एक एब्स मेंtract इंटरफ़ेस कीवर्ड, किसी विधि को abs के रूप में घोषित करने के लिए वैकल्पिक हैtract. | एक एब्स मेंtracटी क्लास, एब्सtracकिसी विधि को abs के रूप में घोषित करने के लिए t कीवर्ड अनिवार्य है।tract. |
| कक्षा का प्रकार | एक इंटरफ़ेस में केवल सार्वजनिक एब्स हो सकते हैंtracटी विधियाँ। | एक एब्सtracटी क्लास ने संरक्षित और सार्वजनिक एब्स को संरक्षित किया हैtracटी विधियाँ। |
इंटरफ़ेस और एबीएस के लिए नमूना कोडtracटी क्लास में Java
इंटरफ़ेस और एब्स बनाने के लिए निम्नलिखित नमूना कोड है।tracटी क्लास में Java
इंटरफ़ेस सिंटैक्स
interface name{
//methods
}
Java इंटरफ़ेस उदाहरण:
interface Pet {
public void test();
}
class Dog implements Pet {
public void test() {
System.out.println("Interface Method Implemented");
}
public static void main(String args[]) {
Pet p = new Dog();
p.test();
}
}
Abstracटी क्लास सिंटैक्स
abstract class name{
// code
}
Abstracटी क्लास का उदाहरण:
abstract class Shape {
int b = 20;
abstract public void calculateArea();
}
public class Rectangle extends Shape {
public static void main(String args[]) {
Rectangle obj = new Rectangle();
obj.b = 200;
obj.calculateArea();
}
public void calculateArea() {
System.out.println("Area is " + (b * b));
}
}

