दिलचस्प पोस्ट
stdin, stdout और stderr के बारे में भ्रमित? एचटीएमएल के अंदर HTML डालना। एक्शनलिंक (), प्लस न लिंक टेक्स्ट? एक गिट कमेटी खोजना जिससे कि किसी भी शाखा में एक स्ट्रिंग पेश की गई 'क्लीनफिक्स' के किस तरीकों का मैं उपयोग कर सकता हूं? कैसे एक UIView करने के लिए एक स्पर्श घटना जोड़ने के लिए? आर लोडिंग फाइल में लूप UIImage को NSData में कनवर्ट करें हुवाई, लॉगअप मेरे ऐप के लिए लॉग नहीं दिखा रहा है? अज्ञात कॉलम में कहां मैं WPF / WP7 में एक सूची बॉक्स में तारों की सूची कैसे बाँट सकता हूं? मैं डेविस के साथ ईमेल पुष्टि कैसे तय करूं? JPQL कन्स्ट्रक्टर एक्सप्रेशन – org.hibernate.hql.ast.QuerySyntaxException: तालिका मैप नहीं है फेसबुक जैसी दीवार पर पोस्ट करने के लिए Google प्लस एपीआई PHP को महीने के लिए सप्ताह की संख्या मिलती है सेवा एप्लिकेशन और Google Analytics API V3: सर्वर-टू-सर्वर OAuth2 प्रमाणीकरण?

सुपर () जावा में

super() क्या पेरेंट कन्स्ट्रक्टर को कॉल करता है? कृपया super() बताएं

वेब के समाधान से एकत्रित समाधान "सुपर () जावा में"

super() कोई तर्क के साथ मूल निर्माता कॉल नहीं करता है।

इसका उपयोग तर्क के साथ भी किया जा सकता है Ie super(argument1) और यह कन्स्ट्रक्टर को कॉल करेगा जो 1 के argument1 के प्रकार 1 पैरामीटर को स्वीकार करता argument1 (यदि मौजूद है)।

इसके साथ ही माता-पिता से तरीकों को कॉल करने के लिए इस्तेमाल किया जा सकता है। Ie super.aMethod()

अधिक जानकारी और ट्यूटोरियल यहां

1. super() तत्काल माता-पिता को फोन करने के लिए उपयोग किया जाता है।

2. super() उदाहरण के सदस्यों के साथ प्रयोग किया जा सकता है अर्थात्, उदाहरण चर और उदाहरण तरीकों

3. पेरेंट क्लास के कन्स्ट्रक्टर को कॉल करने के लिए super() का उपयोग कंस्ट्रक्टर के भीतर किया जा सकता है।

ठीक है अब हम व्यावहारिक रूप से super() इस बिंदु को लागू करते हैं

प्रोग्राम 1 और 2 के बीच का अंतर देखें। यहां 2 प्रोग्राम जावा में super() का हमारा पहला कथन है।

कार्यक्रम 1

 class Base { int a = 100; } class Sup1 extends Base { int a = 200; void Show() { System.out.println(a); System.out.println(a); } public static void main(String[] args) { new Sup1().Show(); } } 

आउटपुट: –

200

200

अब प्रोग्राम 2 की जांच करें और मुख्य अंतर जानने की कोशिश करें।

कार्यक्रम 2

 class Base { int a = 100; } class Sup2 extends Base { int a = 200; void Show() { System.out.println(super.a); System.out.println(a); } public static void main(String[] args) { new Sup2().Show(); } } 

उत्पादन

100

200

1 कार्यक्रम में, आउटपुट केवल व्युत्पन्न वर्ग का था। यह बेस क्लास या पैरेंट क्लास के वेरिएबल को मुद्रित नहीं कर सका। लेकिन कार्यक्रम 2 में, हमने अपने आउटपुट को प्रिंट करते समय एक चर super() प्रयोग किया और व्युत्पन्न चर के मूल्य को छपाई करने के बजाय, यह आधार वर्ग के वेरिएबल के मूल्य को मुद्रित किया। इसलिए यह साबित करता है कि super() तत्काल माता-पिता को फोन करने के लिए उपयोग किया जाता है।

ठीक है अब प्रोग्राम 3 और प्रोग्राम 4 के बीच का अंतर देखें

कार्यक्रम 3

 class Base { int a = 100; void Show() { System.out.println(a); } } class Sup3 extends Base { int a = 200; void Show() { System.out.println(a); } public static void Main(String[] args) { new Sup3().Show(); } } 

उत्पादन

200

यहां 200 का उत्पादन होता है। जब हमने शो फंक्शन को कहा, तो व्युत्पन्न वर्ग का शो फ़ंक्शन बुलाया गया था। लेकिन हमें क्या करना चाहिए अगर हम अभिभावक वर्ग के शो फ़ंक्शन को कॉल करना चाहते हैं। समाधान के लिए प्रोग्राम 4 को देखें

कार्यक्रम 4

 class Base { int a = 100; void Show() { System.out.println(a); } } class Sup4 extends Base { int a = 200; void Show() { super.Show(); System.out.println(a); } public static void Main(String[] args) { new Sup4().Show(); } } 

उत्पादन

100

200

यहां हमें दो आउटपुट 100 और 200 मिलते हैं। जब व्युत्पन्न वर्ग के शो फ़ंक्शन लागू होते हैं, तो यह पहले पैरेंट क्लास का शो फ़ंक्शन कॉल करता है, क्योंकि व्युत्पन्न क्लास के शो फ़ंक्शन के अंदर हम सुपर कीवर्ड डालकर मूल वर्ग के शो फ़ंक्शन को बुलाते हैं। समारोह के नाम से पहले

हाँ। super(...) सुपर-क्लास के कन्स्ट्रक्टर को आमंत्रित करेगा

इस उदाहरण को देखें:

 class Animal { public Animal(String arg) { System.out.println("Constructing an animal: " + arg); } } class Dog extends Animal { public Dog() { super("From Dog constructor"); System.out.println("Constructing a dog."); } } public class Test { public static void main(String[] a) { new Dog(); } } 

प्रिंटों:

 Constructing an animal: From Dog constructor Constructing a dog. 

क्या सुपर () को मूल निर्माता को कॉल करने के लिए उपयोग किया जाता है?

हाँ।

Pls सुपर () के बारे में बताएं

super() super कीवर्ड का एक विशेष उपयोग है, जहां आप पैरामीटर वाले पेरेंट कन्स्ट्रक्टर कहते हैं। सामान्य तौर पर, super कीवर्ड को अधिरोहित विधियों को कॉल करने, छिपे हुए क्षेत्रों तक पहुंचने या सुपरक्लास के कन्स्ट्रक्टर का इस्तेमाल करने के लिए इस्तेमाल किया जा सकता है।

यहां आधिकारिक ट्यूटोरियल है I

हां, super() (लोअरकेस) पैरेंट क्लास के कन्स्ट्रक्टर को कॉल करता है। आप तर्क super(foo, bar) सकते हैं: super(foo, bar)

एक super कीवर्ड भी है, जो कि आप सुपरक्लास की एक विधि को खोलने के तरीकों में उपयोग कर सकते हैं

"जावा सुपर" के लिए एक त्वरित गूगल परिणाम इस में

ना-तर्क सुपर कन्स्ट्रक्टर को कॉल करना सिर्फ स्क्रीन स्थान और प्रोग्रामर समय की बर्बादी है। कंपाइलर उसी कोड को उत्पन्न करता है, चाहे आप इसे लिखते हैं या नहीं

 class Explicit() { Explicit() { super(); } } class Implicit { Implicit() { } } 

वह सही है। सुपर को पेरेंट कन्स्ट्रक्टर को कॉल करने के लिए उपयोग किया जाता है। तो मान लें कि आपके पास ऐसा कोड ब्लॉक है जैसे कि

 class A{ int n; public A(int x){ n = x; } } class B extends A{ int m; public B(int x, int y){ super(x); m = y; } } 

फिर आप सदस्य चर n के लिए एक मान निर्दिष्ट कर सकते हैं।

यदि आपकी पद्धति अपने सुपरक्लास के तरीकों में से एक को ओवरराइड करती है, तो आप कीवर्ड सुपर के उपयोग के माध्यम से ओवरराइड पद्धति का उपयोग कर सकते हैं। आप छिपे हुए क्षेत्र का उल्लेख करने के लिए सुपर उपयोग भी कर सकते हैं (हालांकि छुपाने वाले क्षेत्रों को हतोत्साहित किया गया है)। इस वर्ग पर विचार करें, सुपर क्लास:

 public class Superclass { public void printMethod() { System.out.println("Printed in Superclass."); } } 

यहां एक उपवर्ग है, जिसे उपवर्ग कहा जाता है, जो printMethod () को ओवरराइड करता है:

 public class Subclass extends Superclass { // overrides printMethod in Superclass public void printMethod() { super.printMethod(); System.out.println("Printed in Subclass"); } public static void main(String[] args) { Subclass s = new Subclass(); s.printMethod(); } } 

उपवर्ग के भीतर, सरल नाम printMethod () उप-वर्ग में घोषित एक को संदर्भित करता है, जो सुपरक्लास में एक को ओवरराइड करता है। इसलिए, Superclass से विरासत में मिली printMethod () को संदर्भित करने के लिए, उप-क्लास को एक योग्य नाम का उपयोग करना चाहिए, जैसा कि दिखाया गया है सुपर का उपयोग करना। उपवर्ग संकलन और निष्पादित निम्न छापती है:

सुपर क्लास में मुद्रित उपवर्ग सबक्लास कन्स्ट्रक्टर्स में मुद्रित

निम्न उदाहरण बताता है कि एक सुपरक्लास के कन्स्ट्रक्टर का उपयोग करने के लिए सुपर कीवर्ड का उपयोग कैसे करें। साइकिल उदाहरण से स्मरण करें कि माउंटेनबाइक साइकिल का एक उप-वर्ग है यहां माउन्टेनबिक (उप-श्रेणी) निर्माता है जो सुपरक्लास कन्स्ट्रक्टर को कॉल करता है और उसके बाद खुद का इनिशियलाइज कोड जोड़ता है:

 public MountainBike(int startHeight, int startCadence,int startSpeed, int startGear) { super(startCadence, startSpeed, startGear); seatHeight = startHeight; } 

सुपरक्लास कंस्ट्रक्टर का आमंत्रण उप-क्लास कन्स्ट्रक्टर में पहली पंक्ति होना चाहिए।

सुपरक्लास कंस्ट्रक्टर को फोन करने के लिए वाक्यविन्यास है

सुपर();
या: सुपर (पैरामीटर सूची); सुपर () के साथ, superclass no-argument constructor कहा जाता है। सुपर (पैरामीटर सूची) के साथ, एक मिलान पैरामीटर सूची के साथ सुपरक्लास कंस्ट्रक्टर कहा जाता है।

बस सुपर (); अकेले डिफ़ॉल्ट कन्स्ट्रक्टर को बुलाएगा, अगर यह एक क्लास के सुपरक्लस के अस्तित्व में है लेकिन आपको स्पष्ट रूप से डिफ़ॉल्ट कन्स्ट्रक्टर खुद को लिखना होगा अगर आप जावा नहीं करते हैं तो आपके लिए कोई क्रियान्वयन नहीं होगा, सुपर को बचाने के लिए; , सार्वभौमिक सुपरक्लास ऑब्जेक्ट का जिक्र करते हुए, और आप इसे एक उपवर्ग में नहीं बुला सकते।

 public class Alien{ public Alien(){ //Default constructor is written out by user /** Implementation not shown…**/ } } public class WeirdAlien extends Alien{ public WeirdAlien(){ super(); //calls the default constructor in Alien. } } 

उदाहरण के लिए, सेलेनियम स्वचालन में, आपके पास एक पेजऑब्जेक्ट है, जो इस तरह अपने माता-पिता के निर्माता का उपयोग कर सकते हैं:

 public class DeveloperSteps extends ScenarioSteps { public DeveloperSteps(Pages pages) { super(pages); }........ 

मैंने सभी जवाब देखे हैं लेकिन हर कोई एक बहुत महत्वपूर्ण बिंदु का उल्लेख करना भूल गया:

सुपर () को कन्स्ट्रक्टर की पहली पंक्ति में कॉल किया जाना चाहिए या उपयोग किया जाना चाहिए।

कंस्ट्रक्टर्स
एक कन्स्ट्रक्टर में, आप इसे किसी अन्य कन्स्ट्रक्टर को कॉल करने के लिए डॉट के बिना उपयोग कर सकते हैं। super सुपरक्लास में एक कन्स्ट्रक्टर को कॉल करता है; this इस वर्ग में एक कन्स्ट्रक्टर को कहता है:

 public MyClass(int a) { this(a, 5); // Here, I call another one of this class's constructors. } public MyClass(int a, int b) { super(a, b); // Then, I call one of the superclass's constructors. } 

super उपयोगी है यदि सुपर क्लास को खुद को आरम्भ करने की आवश्यकता है this उपयोगी है कि आपको कंसल्टेंट्स में से किसी एक में केवल एक बार ही हार्ड इनिशियलाइजेशन कोड लिखने की अनुमति मिल सके और इसे अन्य सभी, आसान-टू-लिखित कन्स्ट्रक्टरों से कॉल करने के लिए उपयोगी हो।

तरीके
किसी भी विधि में, आप इसे किसी अन्य विधि को कॉल करने के लिए डॉट से उपयोग कर सकते हैं। super.method() superclass में एक विधि कॉल करता है; this.method() इस वर्ग में एक विधि कॉल करता है:

 public String toString() { int hp = this.hitpoints(); // Calls the hitpoints method in this class // for this object. String name = super.name(); // Calls the name method in the superclass // for this object. return "[" + name + ": " + hp + " HP]"; } 

super एक निश्चित परिदृश्य में उपयोगी होता है: यदि आपकी कक्षा में आपके सुपर क्लास के समान विधि है, तो जावा मान लेगा कि आप अपनी कक्षा में एक चाहते हैं; super आपको इसके बजाय सुपरक्लास की विधि के बारे में पूछने की अनुमति देता है। this केवल आपके कोड को अधिक पठनीय बनाने के लिए एक तरीका के रूप में उपयोगी है।

सुपर कीवर्ड का इस्तेमाल सुपरक्लास कन्स्ट्रक्टर को कॉल करने के लिए किया जा सकता है और सुपर क्लास के सदस्य को संदर्भित किया जा सकता है

जब आप सही ( सही ) के साथ सुपर () कॉल करते हैं, तो हम वास्तव में कन्स्ट्रक्टर बॉक्स को कॉल करते हैं, जो वैरिएबल की चौड़ाई , ऊंचाई और गहराई को आरंभ करते हैं, जो संबंधित पैरामीटरों के मूल्यों का उपयोग करके इसे संदर्भित करते हैं। आप केवल इसके मूल्य वर्धित वजन को आरंभ करने के लिए ही बने रहेंगे। यदि आवश्यक हो, तो आप अब वर्ग चर बॉक्स बॉक्स निजी के रूप में कर सकते हैं बॉक्स वर्ग निजी संशोधक के क्षेत्र में नीचे रखो और सुनिश्चित करें कि आप बिना किसी समस्या के उन तक पहुंच सकते हैं।

सुपरक्लस में कई अतिभारित संस्करण कंस्ट्रक्टर हो सकते हैं, ताकि आप विभिन्न पैरामीटर के साथ विधि सुपर () को कॉल कर सकें। यह प्रोग्राम कन्स्ट्रक्टर करेगा जो विशिष्ट तर्क से मेल खाता है।

 public class Box { int width; int height; int depth; Box(int w, int h, int d) { width = w; height = h; depth = d; } public static void main(String[] args){ HeavyBox heavy = new HeavyBox(12, 32, 23, 13); } } class HeavyBox extends Box { int weight; HeavyBox(int w, int h, int d, int m) { //call the superclass constructor super(w, h, d); weight = m; } } 

सुपर एक कीवर्ड है यह सुपर क्लास में परिभाषित विधि को कॉल करने के लिए उप-श्रेणी पद्धति परिभाषा के अंदर प्रयोग किया जाता है। सुपरक्लास के निजी तरीकों को नहीं बुलाया जा सकता। सुपर कुंजीशब्द द्वारा केवल सार्वजनिक और संरक्षित तरीकों को बुलाया जा सकता है इसका उपयोग क्लास कन्स्ट्रक्टरों द्वारा अपने पैरेंट क्लास के कन्स्ट्रक्टर के लिए भी किया जाता है।

आगे स्पष्टीकरण के लिए यहां देखें

जावा में सुपर कीवर्ड

सुपर कीवर्ड एक संदर्भ चर है जिसका उपयोग अभिभावक वर्ग के ऑब्जेक्ट के लिए किया जाता है।

जावा में सुपर कीवर्ड का उपयोग क्यों करें?

जब भी बेस क्लास डेटा को व्युत्पन्न कक्षा में प्राप्त होता है, तो यह अस्पष्टता प्राप्त करने का मौका है, क्योंकि आधार क्लास हो सकता है और व्युत्पन्न क्लास डेटा समान होता है इसलिए इन आंकड़ों को सुपर कीवर्ड का उपयोग करने की आवश्यकता होती है

विधि स्तर पर सुपर खोजशब्द?

सुपर कीवर्ड का उपयोग मूल वर्ग विधि को कॉल करने के लिए भी किया जाता है। विधि को ओवरराइड करने के मामले में सुपर कीवर्ड का इस्तेमाल होना चाहिए।

विधि स्तर पर सुपर खोजशब्द का उपयोग करते समय?

सुपर कीवर्ड का उपयोग तब होता है जब बेस क्लास विधि का नाम और व्युत्पन्न वर्ग विधि नाम का समान नाम है।

http://www.tutorial4us.com/java/java-super-keyword