0:00
जावा के इस वीडियो में हम लोग देखने वाले हैं मैथड ओवर राइडिंग और मैथड ओवर राइडिंग एक बहुत इंपोर्टेंट कॉनसेप्ट है जावा के अंतर अगर आप लोग एंड्रोइड डेवलप्मेंट या स्प्रिंग बूट वगैरह इस तरह की चीजों म��
0:30
बनाऊंगा cwh underscore 48 underscore 48 और underscore मैं आपको लिखूँगा method overriding
0:39
ठीक है और यह करने के बाद यहाँ पर एक main method लगाऊंग��
0:43
और main method लगाने के बाद आप लोग को बताता हूँ overriding के बारे में मालों मेरे पा��
0:47
एक class a है ठीक है और इसके अंदर मेरे पास एक method ह��
0:51
लेट रेसे public int harry जो कि एक बहुत अजीब सा method है क्योंकि ये return करता ह��
0:57
4 ये return कर सकता है यार ये कुछ भी return कर सकता है ठीक है इसकी मरजी ह��
1:01
फिर मान लो मेरे पास एक और method है public void method2
1:07
जो यहाँ पर कुछ print करता है लेट रेसे system.out.println I am method2 of class A
1:17
अब मैं यहाँ पर एक class B बनाता हूँ और मैं कहता हूँ कि यह extend कर रही है class A क��
1:25
यानि कि मैं B को inherit कर रहा हूँ A से तो A के जो भी methods और इसकी properties है��
1:31
वो सारी आ जाएंगे अगर यहाँ पर एक public int A is equal to
1:35
यहाँ पर public int A मैंने यहाँ पर लिखा हुआ है और इसके बाद मैं class b extends a कर दू��
1:41
और इसके बाद मैं यहाँ पर let us say एक method बनाता हू��
1:45
public void math 3 public void math 3 और यहाँ पर मैं लिखूँग��
1:52
I am method 3 of class b class b का method 3 ह��
1:56
और अगर मैं यहाँ पर object बना दूँ जल्दी से मैं यहाँ पर लिखूँ क��
2:01
a is equal to new a और फिर मैं a.method2 मानलो run करू��
2:08
तो क्या होगा method2 print करेगा I am method2 of class A
2:13
no surprises whatsoever यहां तक बिल्कुल सही आप लोगों समझ में आ रही होंग��
2:17
चीज़े की भाई ठीक है एक class A बनाई एक class B बनाई class A के अंदर Harry और method2 नाम के methods डाल��
2:25
class B के अंदर method3 नाम का एक method डाला कहना क्या चाहता हूँ मैं यहाँ पर आप लोग को बताता हू��
2:31
मालो मैंने यहाँ पर एक b का object बनाया है मैंने कहा b, b is equal to new b
2:35
ठीक है और उसके बाद मैं यहाँ पर b.met2 करता हूँ यहाँ प��
2:40
क्योंकि मैं met2 इस्तेमाल कर सकता हूँ क्योंकि यहाँ b extend कर रही है A को, तो जो Harry method ह��
2:45
और Math 2 method है, वो obviously मेरे पास B के अंदर भी आ जाएंग��
2:50
तो अगर मैं B का कोई object बना रहा हूँ तो मैं Math 2 को इस्तेमाल कर सकता हू��
2:53
inheritance तो हमने देखी रखा है, ठीक है तो मैं B को भी इस्तेमाल कर सकता हू��
2:57
यहाँ पर इतना करने के पाद अगर मैं अभी run करूँ इसक��
3:01
तो आप लोग देखो यहाँ पर वही चीज वापस से print हो गई लेकिन मान लो कि मैं चाहता हूँ कि मै��
3:07
inherit करूँ class A से class B को और at the same time मैं चाहता हूँ क��
3:13
यह जो method 2 method है कि यहाँ पर method 2 of class B शो कर��
3:17
class A शो ना करे तो क्या मैं सिर्फ एक method को change कर सकता हू��
3:21
अपनी नई वाली class यानि कि class B में इसी को कहते है method overriding
3:25
यानि कि मैं कह रहा हूँ कि देखो बाई class B तो class A के सारे के सारे methods और properties को inherit कर ल��
3:32
method 2 implement method 2 implement math2 2 method 2 of class B note method 2 method 2 implementation method 2 I am method 2
4:04
अब class B का object बना के उस पे method 2 run करूँगा, तो वो मुझे यहाँ पर इसका method run करके देगा
4:10
और यहाँ पर जो मैं A का object बना रहा था, वो तो यार A का इस method run करके दे रहा था
4:14
तो मैं इसको जैसे इसे run करूँ, आप लोग देखो यहाँ पर, I am method 2 of class A और I am method 2 of class B
4:20
कि इसी को बतें मैथड ओवर राइडिंग नॉट टू बी कंफ्यूज़ विद मैथड ओवरलोडिंग बहुत सारे लोग कंफ्यूज़ कर जात��
4:26
प्रेस्ट्रट वर राइडिंग को मेथेड ऑवरलोडिंग से ओवरलोडिंग क्या होता है कि आपके एकी क्लास के अंदर दो मेथड्��
4:33
है नाम उनके से हैं लेकिन उनके जो पैरामीटर से वह अलग-अलग है ठीक है तो जो पैरामीटर लिस्ट वह उनकी अलग ह��
4:40
अब अगर मान लोग मैं यहाँ पर मैथ टू के अंदर कोई इंटीजर दे दोंगी बाइज एक इंटीजर ले रहा है इंट ए तो यह ओवर राइडिंग नहीं है और इंटेलिज़ आईडिया इस चीज को बड़ी अच्छी तरह से भापती है अब देखो जैसे ही मैंने यहा��
5:10
बी को एसे बनाया है आप एक को इनहारेट कर रहे हैं और उसके बाद बी मना रहे हैं लेकिन आपने जो मैथड टू है उसक��
5:16
वर्राइड कर दिया तो यहां पर आपको इंटेलिज आइडिया बता रहा है अच्छा यह बल्ब जलना है यहां पर आप इस पर क्लिक करो त��
5:22
उससे कह रहा है कि एनोटेट मेथड यूजिंग ओवर राइड कि मैं एनोटेट नहीं करूंगा तो कुछ होगा क्या मुझ��
5:28
करने की जरूरत है इस पर क्लिक करके देखता हूं मुझे क्या करके देता है इसमें यहां पर एक ओवर राइड लिखक��
5:33
दिया क्या इससे एरर प्रोड्यूस होगा कि यह वैलेट जावा कोड है देखते हैं बिल्कुल वैलेट जावा कोड क्योंक��
5:40
देखो आप लोग यह एग्जिक्यूट हो गया तो यह ओवरएड नोटेशन होती क्या है यह आप लोगों के दिमाग में एक सवाल होग��
5:45
ओवराइड नोटेशन आप लोगों के लिए एक नोटेशन है जो कि ये दर्शाती है कि आप लोगों ने इस मेथड को ओवराइड कर रखा है अच्छा अगर मान लो मैं इसको ओवराइड ना करूँ ओवराइड कम मैं नहीं करूँ और जब इसका नाम मान लो मैं मेथड 21 र��
6:15
तो अभी मैं इसको run करूँगा तो ये produce करेगा error, warning भी नहीं, error, ये कह रहा है कि method does not override or implement a method from a subtype
6:23
यानि कि आप कह रहे हो, overriding हो रही है, actual में overriding हो नहीं रही है, ये क्या है, तो आपसे Java ये कह रहा है
6:29
अब आप में सगी लोग ये सोचोगे कि यार फिर इस override notation को लिखें क्यों जब ये मुझे time time पे error दे देगा तो लिखें क्यो��
6:36
आपको लिखना जरूरी इसलिए है क्योंकि अगर आप लोग लिखोगे तो नहीं लिखोगे तो कुछ होगा नहीं है तो हमने देख लिय��
6:42
अगर मैं इसको नहीं लिखूंगा तब मुझे कोई प्रॉब्लम नहीं आईगी देखो मैं इसको रन करूँगा और एक्जिक्यूट हो जाएग��
6:47
और यहाँ पर अगर मैं method2 लिखके भी इसको रन करता हूँ तो भी एक्जिक्यूट हो जा रहा ह��
6:50
लेकिन मुझे क्यों लिखने की जरूरत है इसको लिखने की जरूरत क्यों है override क��
6:54
क्यों बनाया गया ऐसा कुछ override annotation से फाइदा यह है कि अगर आप लोग मानो override कर रहे हो method क��
7:02
और आपने उपर parent method को जिस तरह से change कर दिया कि अब वो overriding, overriding नहीं ह��
7:07
क्या मतलब गो इस बात का देखो मैं आपको example बताता हू��
7:11
अभी यह overriding चल रही है आपको ठीक है override override annotation override override annotation
7:26
तो override annotation मैं यहाँ पर लगा दी और मुझे error बिलकुल भी नहीं दिख रहा ह��
7:30
बिलकुल सही चल रहा है सब कुछ लेकिन मार लो मैंने जाकर यहाँ पर इसको change कर दिया, मैंने यहाँ पर कह दिया कि यार यह एक int a लेगा, अब यह method और यह method जो यह वाला method 2 है, जो कि int a ले रहा है और यह वाला method 2, यह अब override नहीं कर रहा है, run करके दिखाता हूँ, यह दिखो यहाँ पर a carrier आ रहा है, तो अगर आप लोग��
8:01
अगर override ये नहीं हुआ, मानलो कभी आपने कुछ ऐसा change आप कर बैठे अपने program में
8:06
कि जहाँ पर आपको लग रहा था override हो रहा है, अब वो मानलो override नहीं हो रहा है
8:10
तो आपको पता चल जाएगा, वरना आप क्या होगा, कि आपको weird errors आते रहेंगे, आप ढूंढ तरह जाओगे अपने code में कि क्या error आ रहे है��
8:16
इसलिए override annotation लगाना जरूरी तो नहीं है बट recommended है ठीक है तो आप लोगों को यहाँ पर override annotation
8:21
लगा कर रखनी है ताकि अगर आपको लग रहा है कि override हो रहा ह��
8:26
तो actual में भी override हो रहा है या नहीं हो रहा है ये बात साफ रहा है ये बात clear रहा है कि override हो रहा है और फिर नहीं हो रहा ह��
8:32
इसलिए अगर override हो रहा है तो override लगाओगे तो आपको program काम करेग��
8:36
लेकिन अगर override नहीं हो रहा है और उसके बाद भी आपने override annotation लगा दी तब आपको error आएगा जैसे कि मैंने आप लोगों को अभी दिखा दिय��
8:42
ठीक है तो ये था हमारा method overloading जरा notes खोल के देख लेते हैं कि notes में मैंने आप लोगों के लिए क्या लिखा हुआ ह��
8:48
तो guys ये है वो chapter 10 के notes जो कि मैंने आप लोगों के लिए बनाये हुए थ��
8:52
अब बहुत सारे लोग बोलते हैं जल्दी जल्दी वीडियो डालो जल्दी जल्दी डालो मुझे आवन नोट्स के साथ जब मैं वीडियो बनाता हूँ और मुझे एडिटिंग भी खुद करनी बढ़ती ह��
8:59
तो इसमें मेरा काफ़ी time जाता है और ये सारा मुझे part time करना पड़ता है क्योंकि मुझे अपना primary काम पे ज़्यादा focus करना पड़ता ह��
9:05
तो आप लोग please समझा करो मेरे पास कोई team नहीं ह��
9:08
मैं खुद से करता हूँ सब कुछ editing से लेके end to end
9:12
सब कुछ मैं खुद करता हूँ तो यार I hope आप समझोगे कि यार थोड़ा time अगर मै��
9:16
लेता हूँ तो actual मैं आप लोगो quality भी deliver करके देता हूँ फाल्टू मैं videos
9:20
बनाने नहीं चाहता मैं चाहता हूँ कि यार एक video अगर बनाया है तो आप लोगो help हो क्योंकि यू नो अगर मैं फालतूर वीडियोस बनाऊंगा तो अच्छा नहीं लगेगा आपको भी तो मैथर ओवर रेडिंग की बात करते हैं यहां पर क्या लिखा है मैंने इवर चाइडल लास्ट इंप्लीमेंट से सीम मेथर प्रेसेंट इन पेरेंट लास्ट अगेन इड��
9:53
नहीं लग रहा है सही से आप आप बहुत अमीर हो आपके बास फोर के मॉनिटर है तो यार मेरे लिए टेनिटी भी में दे��
10:01
लो यार इसको अगर आपको फोर के मॉनिटर में आप बहुत बड़ी स्क्रीन है आपके पास आप 56 अठावन इंच की और बहु��
10:07
आपका home theater में देखते हो आप videos तो यार माफ करना थोड़ा सा फटेगा pixel
10:11
बट अगर आप एक साधारान इंसान हो 4K monitor में भी देखते होगा तब भी ठीक दिखेग��
10:16
आप लोगो ठीक है method overriding ठीक है redefining method of super class
10:23
यानि कि जो super class में method है उसको आपने फिर से define कर दिया subclass मे��
10:27
लेकिन जो argument list है वो same होनी चाहिए यह नहीं कि आपने पहले int a ले रहे थ��
10:32
अब आप कुछ ले नहीं रहो या फिर पहले आप int a ले रहे थे नए method में आप int a, int b ले रहे ह��
10:36
ना, वो नहीं होगा, वो बिल्कुल नहीं होगा overriding overriding exactly argument list same rule rule return type same sub type return type sub type class A data type B subtype class A A type B subtype class A confusing chapter end list rules method overriding actually
11:24
इसका की जो एक्सेस लेवल है वह रिस्ट्रिक्टिव नहीं होनी चाहिए जिस मैथड को आप ओवरआइड कर रहे हैं उसस��
11:31
समझ रहा है अगर इसकी पब्लिक है अगर इसकी मान लो पब्लिक है तो नीचे प्राइवेट नहीं कर सकते तो कर मैं प��
11:37
प्राइवेट कर देता हूं तो यहां पर देखो यह नहीं यह नहीं है यह नहीं है ठीक है तो यहां पर मैंने प्राइवे��
11:43
कर दी तो आप यहां पर इसको वर नहीं कर सकते ठीक है तो यह सारी लिस्ट मैं आप लोगों बनाकर दूंगा इस पर हम पूर��
11:48
बात करेंगे इन सब rules पे, और static method को आप override नहीं कर सकते
11:53
आप final method को override नहीं कर सकते, यह सब चीज़ें हम लोग देखेंगे, ठीक है
11:58
और उसके बाद अभी के लिए बस आप override समझ लो, method क्या होता है
12:02
एक method को जब मैं कह रहा हूँ override करते हैं, उसका क्या मतलब है वो इतना समझ लो अभी अब when an object of subclass is created
12:07
जब आप subclass का object बनाते हो and the overridden method is called जब आप overridden method को call करते ह��
12:13
the method which has been implemented in the subclass is called and its code is executed
12:18
समझ रहे हो कि अगर आप लोगों ने एक subclass बनाई कुल मिला के इसका मतलब यह है कि या��
12:22
अगर A आपने class 1 बना रखी है और B को आपने बना रखा है A स��
12:26
तो आप लोग अगर B का object बना रहे हो और method call कर रहे हो B प��
12:30
तो इसका latest वाला जो method है वो call होगा पुराना method call नहीं होगा और A का अपना method call होग��
12:35
अगर A का object है तो यह चीज हमने यहाँ पर देख लिये तो वही चीज मैंने notes में लिखी हुई है, यार अगर आप मान लो, 50-60 साल के बाद अगर आप लोग भूल जाओ जावा, तो आपके बास ये notes रहेंगे, और notes डाउनलोड कर लेना, मैं chapter के end पे सारे notes देता जा रहा हूँ, और अभी वीडियो से काम चला लो देखके, यार वी��
13:07
अभी मैं बहुत slow डाल पा रहा हूँ वीडियोस, क्योंकि time लग रहा है, time लग रहा है, समझने की कुछिश करा करो
13:12
अगर आप लोगों को already बहुत सारे वीडियोस यहां देखने को मिल रहे हैं, तो you are lucky कि आपके पूरा course आपके हाथ में है
13:17
तो करो यार और उसी के साथ साथ यहाँ पर overriding के बारे में मैंने सिर्फ इतन��
13:21
बात कर रही थी अभी dynamic method dispatch बहुत ध्यान से समझना अगल��
13:25
वीडियो में बताऊँगा बहुत important concept ठीक है ध्यान से सुनना प्लीज ठीक है औ��
13:30
समझ में आ गया तो मज़ा आ जाएगा और गैलेंट्रीट समझ में आएगा अगर देखोगे ढंग से वीडियो मेरी बात को ध्यान से सुनोगे तो सारे कोड्स पर अपलोड हो जाएगे और यार कभी कभी अगर मैं लेट भी हो जाता हूँ नो कोड डालने में तो यार इतना क��
14:00
टाइप करो उसके बाद भी, ये मेरा आप लोगो एक सजेशन है बहुत बड़ा, so
14:04
I hope कि ये वीडियो समझ में आया होगा, आप लोगो playlist access कर लो, ये बोलूंगा नहीं अब मै��
14:08
क्योंकि कई बार बोल चुका हूँ और आप लोगो ने कर ही लियो गया और यहां क्लिक करके bookmark कर लिया हो यहां क्लिक करके save कर लिया हो इसलिए इस बात को बार-बा��
14:14
बोलने का कोई मतलब नहीं है ठीक है अब इस वीडियो में इतना है guys thank you so much guys for watching this video
14:19
and I will see you next time