Interface in Java in Hindi

Last Updated on May 24, 2023 by RAJENDRAPRASAD

Interface in java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |

दोस्तों, पिछले post में आपने OOPs concept के Abstraction के बारे में विस्तार से जाना |

आज के इस पोस्ट Interface in Java in Hindi में आप Interface के बारे में विस्तार से जानेंगे |

दोस्तों, अब तक आप ने जाना कि,

Abstraction यह एक ऐसी प्रकिया (process) है जिसमें user को, किसी product की कार्यप्रणाली (कैसे काम करता है) को hide करके, केवल उसके functions के बारे में ही बताया जाता है |

इसका सीधा – सीधा मतलब है कि, abstraction यह एक ऐसा process है, जिसका उपयोग करके किसी भी real world object को उसके simplified version के साथ प्रस्तुत (represent) किया जाता है अर्थात abstraction का उपयोग करके किसी भी object की complexity को छुपाया (hide) जाता है |

Abstraction द्वारा user का ध्यान इस बात पर केंद्रित (focus) किया जाता है कि, कोई object क्या काम कर सकता है, न कि उस काम को कैसे करता है | इसका अर्थ यह है कि abstraction, design parts पर focus करता है |

उदाहरण के लिए, अगर हम किसी vehicle को describe करते है तो यह नहीं बताते कि car को drive करते समय उसका engine कैसे कार्य करता हैं, बल्कि driver को कुछ ही tools के बारे में बताते हैं जैसे Pedal, Brake, Steering Wheel, Blinker इत्यादि | यहाँ engine की पूरी engineering को छुपाया अर्थात hidden रखा जाता हैं, क्योकि एक driver के लिए इसका कुछ उपयोग नहीं है | इसे ही abstraction कहते हैं |

आपने यह भी जाना कि, Java में Abstraction achieve करने के दो तरीके हैं |

1. Abstract class का use करके

2. Interface का use करके

पिछले  post में आपने Abstraction के बारे में जाना, इस post में हम Interface को विस्तार से जानेंगे |

आइए Interface को एक real life example से समझें |

Example :

Vehicles जैसे Bicycle, Car, Bike, Truck ….इत्यादि में कुछ न कुछ common properties है जो, सारे vehicle में available  है | इसलिए हम एक interface Vehicle बनाएँगे जिसमे, सारे common functions हो, और सारे class Bicycle, Car, Bike, Truck इत्यादि उन सभी function को अपने अनुसार  implement करें |

NOTE: ऊपर के example में, सभी class Bicycle, Car, Bike, Truck इत्यादि Interface Vehicle को implements करते हैं, इस तरह यहाँ Interface Vehicle सभी class के लिए common  parent का कार्य कर रहा है |

Interface in Java

Interface यह java में abstraction को achieve करने का तरीका है |

Interface यह बिल्कुल Class के जैसा ही दिखता है परन्तु, दोनों के concept बिल्कुल अलग हैं |

Class की तरह ही Interface के अंदर भी variables और methods होते हैं परन्तु, इसके अंदर केवल abstract method ही होते हैं अर्थात method की कोई implementation body { } नहीं होती |

Inteface यह बताता हैं कि,  एक class को क्या – क्या जरूर करना चाहिए न कि उसे कैसे करना चाहिए |

Interface में सारे method by default abstract और public होते हैं तथा सारे variable by default public, static और final ही होते हैं |

कहने का मतलब अगर हम केवल “void methodName()” लिखे तब भी compiler उसे “public abstract void methodName()” ही समझेगा |

ठीक उसी तरह “int a” को compiler “public static final int a “ ही समझेगा |

Declaring Interfaces

जिस तरह Class declare करने के लिए हम “class” keyword का use करते हैं, ठीक उसी तरह Interface को declare करने के लिए “interfacekeyword का use किया जाता है |

Syntax:

interface interfaceName {

// declare constant variables
// declare methods that abstract 
// by default.   

}

Example 1:

interface Animal {
void breath();
}

Implementing Interfaces

एक class किसी भी interface को implement करने के लिए implements keyword का use करता है |

जब एक class किसी भी interface को impelements करता है तब, इसका अर्थ है वह उस interface के सारे behavior को perform करेगा |

अगर class, interface के किसी भी behavior को perform नहीं करता उस स्थिती में उस class को abstract declare करना होगा |

सरल शब्दों में कहें तो, एक Interface किसी भी class (जो interface को implements करता हो ) के लिए contract/ agreements की तरह काम करता है, जिसे class को मानना ही होता है और ऐसा न करने पर class को abstract declare करना होता है |

Syntax:

Class ClassName implements IntereFaceName{

}

Example 2:

class Dog implements Animal {

	@Override
	public void breath() {
		System.out.println("Breathing as Dog...");
	}
}

class Fish implements Animal {

	@Override
	public void breath() {
		System.out.println("Breathing as Fish...");
	}
}

class InterfaceDemo {
	public static void main(String args[]) {
		Animal a;
		a = new Dog();
		a.breath();
		a = new Fish();
		a.breath();
	}
}

OutPut:

Breathing as Dog

Breathing as Fish

Explanation:

ऊपर के example में, हमनें Animal name का एक interface create किया है |

इसमें एक abstract method breath() declare किया है |

उसके बाद हमनें, दो नए class Dog और Fish बनाए है, जो interface Animal को implements कर रहे हैं |

ध्यान दो, यहाँ दोनों class Dog और Fish, interface Animal को implement करने के बाद उसके absrtract method breath() को override कर के उसे implementation body {} दे रहे हैं |

Class Interface demo में हमनें interface Animal का reference variable a create  किया है | पहली बार हमने reference variable a में Dog object को assign किया , तब a. breath() call करने पर Dog class का overridden method call हुआ |

उसके बाद जब हमनें reference variable a में class Fish का object assign किया तो a.breath() call करने पर Fish class का overridden method call हुआ |

Extending Interfaces

जिस तरह एक class दूसरे class को extends करता है, ठीक उसी तरह एक Interface दूसरे Interface को extends करता है |

Example :

Interface ABC extends LMN {
// declare constant fields
// declare methods that abstract 
// by default.   

}

Extending Multiple Interfaces

एक class एक से अधिक class को extends नहीं कर सकता, परन्तु एक Interface कई अन्य Interface को extends कर सकता है |

Example:

Interface ABC extends LMN, XYZ, OPQ {
// declare constant fields
// declare methods that abstract 
// by default.   

}

NOTE:

1. जब एक class किसी दूसरे class को inherit करता है तो extends keyword use करते हैं 

2. जब एक class किसी interface को implement करता है तो implements keyword का use करते हैं |

3. एक Interface दूसरे Interface को हमेशा extends करता है |

Program 1:

interface Vehicle {

	void move();
}

class Car implements Vehicle {

	@Override
	public void move() {
		System.out.println("moving car with the help of Steering wheel");
	}
}

class AutoRickshaw implements Vehicle {

	@Override
	public void move() {
		System.out.println("moving AutoRickshaw with the help of handles");
	}
}

class InterfaceDemo2 {
	public static void main(String args[]) {
		Vehicle v;
		v = new Car();
		v.move();
		v = new AutoRickshaw();
		v.move();
	}
}

OutPut:

moving car with the help of Steering wheel
moving AutoRickshaw with the help of handle

Explanation :

ऊपर program 1 में हमनें interface Vehicle में move() method declare किया |

दोनों class Car और AutoRickshaw ने , interface Hehicle को implements करके उसके method move() को अपने – अपने class में override करके उसकी implementation body {} define की |

Program 2:

interface Bank {

	float interestRate();

	long ATMWithdrawalLimit();
}

class SBI implements Bank {

	@Override
	public float interestRate() {
		return 6.5f;
	}

	@Override
	public long ATMWithdrawalLimit() {
		return 20000;
	}
}

class HDFC implements Bank {

	@Override
	public float interestRate() {
		return 5.2f;
	}

	@Override
	public long ATMWithdrawalLimit() {
		return 35000;
	}
}

class InterfaceDemo3 {
	public static void main(String args[]) {
		Bank b;
		b = new SBI();
		System.out.println("for SBI interest rate is : " + b.interestRate()+" %");
		System.out.println("for SBI ATM withdrawal limit is : " + b.ATMWithdrawalLimit());
		System.out.println("---------------------------------");
		b = new HDFC();
		System.out.println("for HDFC interest rate is : " + b.interestRate()+" %");
		System.out.println("for HDFC SBI ATM withdrawal limit is : " + b.ATMWithdrawalLimit());
	}
}

OutPut:

for SBI interest rate is : 6.5 %
for SBI ATM withdrawal limit is : 20000
---------------------------------
for HDFC interest rate is : 5.2 %
for HDFC SBI ATM withdrawal limit is : 35000

Explanation:

ऊपर program 2 में, Bank Interface में दो method interstRate() तथा  ATMWithdrawalLimit() declared हैं |

दोनों class SBI तथा HDFC ने Bank Interface को implements करके उसके दोनों method को अपने – अपने  class के अंदर override किया हैं |

Need of Interface – Interface की जरुरत

जैसा कि, आप जानते हैं, Java यह Multiple inheritance को support नहीं करता, जिसके कारण एक class एक साथ एक से अधिक classes को inherit नहीं कर सकता |

कहने का  मतलब एक child class multiple parent की properties को inherit नहीं कर सकता क्योकि इससे diamond problem पैदा होता हैं | इसे solve करने के लिए ही Interface को लगा गया |

आइए, diamond problem को examples के द्वारा समझे |

Diamond problem while multiple Inheritance

मान लो, हमारे पास दो train हैं एक Passenger train (यात्री रेल) तथा दूसरा Cargo train( मालगाड़ी), अब हम एक ऐसा class बनाना चाहते हैं,  जिसमें इन दोनों trains की properties हो परन्तु,  यह possible नहीं होगा, आइए जानतें हैं क्यों नहीं होगा ?

मान लो कोई एक ऐसा function हैं जो, दोनों ही class Passenger और Cargo में common हो, अब अगर कोई child class इसे inherit भी करना चाहे तो वह confuse हो जाएगा कि, वह Passenger के function को inherit करे या फिर Cargo के function को | इस तरह के confusion को ambiguity कहते हैं और यही diamond problem है |

Interface और class में विभिन्नता :

1. interface का object नहीं create कर सकते

2. interface में कोई constructor नहीं होता

3. interface में सारे method abstract होते हैं

4. interface में सारे variables public, static और final ही होते हैं

5. एक class किसी भी interface को extends नहीं बल्कि, उसे implements करता है

6. एक interface multiple interface को extends कर सकता है

Advantages:

1. Interface हमें 100 % abstraction प्रदान करता हैं

2.Interface किसी भी class (जो interface को implements करता हो ) के लिए contract/ agreements की तरह काम करता है |

3. Methods के implementation part की चिंता किए बिना ही, हम implementation की security को achieve कर सकते हैं |

4. Java, class का use करके multiple inheritance को support नहीं करता, interface का use करके हम multiple inheritance को achieve कर सकते हैं क्योकि, हम एक साथ एक से अधिक interface को implements कर सकते हैं

5. Interface यह programmer को किसी भी application की complex programming approach को break करने तथा objects के बीच की dependency को simplify करने me help करता है |

6. Interface का use करके हम किसी भी application में उसके data members और methods को loosely coupled बना सकते हैं

Disadvantages:

1. Interface का use करने से application की execution speed कम हो जाती है |

NOTE : Java Interface में कुछ बदलाव (changes) हुए हैं, जानने के लिए Interface changes in Java 8 and 9 in Hindi पढ़े |

Conclusion – आज आपने क्या सीखा

इस post में आपने Interface क्या होता है , इसकी जरुरत क्यों है , इसे create, implements तथा extends कब और  कैसे करते हैं, इसके advantages, disadvantage क्या हैं, आदि के बारे में विस्तार से जाना |

आशा है कि, आपको मेरा यह Blog Interface in Java in hindi, जरूर पसंद आया होगा |

अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा | इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |

Leave a Comment