Interface In Java In Hindi|java में Interface क्या होता है?

हेलो दोस्तों आज के इस ब्लॉग पोस्ट(Interface In Java In Hindi) में मै आपको java Interface के बारे में बताने वाला हूँ | इस ब्लॉग में हम आपको विस्तार से बताएँगे कि जावा में Interface का उपयोग क्यों किया जाता है और इंटरफ़ेस का उपयोग कैसे करते है |

जिस तरह से एक क्लास के अंदर में हम वेरिएबल और फंक्शन को डिक्लेअर करते है उसी तरह से हम Interface के अंदर भी फंक्शन को declare करते है | बस अंतर यह होता है की इंटरफ़ेस के अंदर हम सिर्फ मेथड या फंक्शन का प्रोटोटाइप declare करते है या फिर हम signature भी बोल सकते है | पर Interface(Interface In Java In Hindi) के अंदर फंक्शन की बॉडी को डिफाइन नहीं किया जाता है |

एक Interface(Interface In Java In Hindi) यह बताता है की क्लास को क्या करना चाहिए लेकिन वह यह कैसे करेगी इस बात की कोई जानकारी नहीं होती है क्योकि Interface के अंदर किसी भी method की कोई भी definition नहीं होती है |

अगर कोई क्लास किसी Interface(Interface In Java In Hindi) को इम्प्लीमेंट करती है और अगर वह सभी मेथड की बॉडी को डिफाइन नहीं करती है जो की इंटरफ़ेस में declared है तो फिर उस क्लास को अपने आप को abstract क्लास डिक्लेअर करना होगा|

कहने का मतलब यह है की अगर Interface में अगर दो फंक्शन्स सिग्नेचर declared है तो अगर कोई क्लास Interface को इम्प्लीमेंट करती है तो उसे दोनों मेथड की बॉडी को डिफाइन करना पड़ेगा अन्यथा उसे अपने आपको abstract declare करना पड़ेगा |

पर आईये अब जानते है की हम java के अंदर Interface को कैसे declare करते है ?

Interface को डिक्लेअर करने के लिए हम Interface कीवर्ड का इस्तेमाल करते है | Interface का मतलब होता है total abstraction मतलब कि Interface के अंदर डाटा टोटली abstract होता है | और इस Interface के अंदर डिफाइन होने वाले सभी method बिना किसी body के होते है मतलब कि केवल method signature को declare किया जाता है | और इन्हे public रखा जाता है |

interface <interface_name> {
    
    // declare constant fields
    // declare methods that abstract 
    // by default.
}

और Interface के अंदर declare होने वाले सभी fields By default public , static , और final होती है | और जब भी कोई क्लास इस Interface को implement करना चाहती है तो उसे implement keyword का इस्तेमाल करना पड़ता है | और फिर वह क्लास Interface में declared सभी methods को अपने अंदर define कर सकती है |

अब हम जानते है की हमें Interface की जरुरत क्यों पड़ती है ?

Interface को use करने का main उद्देश्य है total data abstraction को अचीव करना है | दरअसल Interface में केवल मेथड सिग्नेचर होते है तो कोई यह पता नहीं कर सकता की कौन सी क्लास इसे किस तरह से डिफाइन करने वाली है | इसलिए इसमें डाटा पूरी तरह से abstract या छुपा हुआ रहता है |

जैसा की हमने inheritance के केस में देखा है कि जावा multiple inheritance को सपोर्ट नहीं करता है , पर Interface का use करके हम multiple inheitance को अचीव कर सकते है |

Interface का उपयोग हम Loose coupling को achieve करने के लिए भी करते है |

loose कपलिंग? What is loose coupling?

दो क्लास है A एंड B , और class A क्लास B के के बारे में उतना ही जानती है जितना की क्लास B ने इंटरफ़ेस के जरिये एक्सपोज़ किया है | तब ऐसी सिचुएशन में हम बोल सकते है की क्लास A एंड क्लास B Loose coupled है |

तो यहाँ पर हमने देखा कि हम java Interface का उपयोग मुख्य रूप से डाटा abstraction को अचीव करने के लिए करते है | पर यहाँ पर आप सब के दिमाग में यह question आ सकता है कि data abstraction तो हम abstract class से भी अचीव कर सकते है तो फिर हमें Interface कि जरुरत क्यों पड़ती है ?

तो इसका sidha sidha रीज़न यह है कि जो abstract क्लास होती है वो non -abstract मेथड भी रख सकती है और non -final variable भी रख सकती है जबकि Interface के अंदर सभी मेथड By default abstract होते है और variable By default public , static , और final होते है | और इस स्थिति में हम पूरी तरह से data abstraction को अचीव नहीं कर सकते है |

// A simple interface
interface Player
{
	final int id = 10;
	int move();
}
// Java program to demonstrate working of
// interface.
import java.io.*;

// A simple interface
interface In1
{
	// public, static and final
	final int a = 10;

	// public and abstract
	void display();
}

// A class that implements the interface.
class TestClass implements In1
{
	// Implementing the capabilities of
	// interface.
	public void display()
	{
		System.out.println("Geek");
	}

	// Driver Code
	public static void main (String[] args)
	{
		TestClass t = new TestClass();
		t.display();
		System.out.println(a);
	}
}

अगर अभी भी आपको Interface अच्छे से समझ में नहीं आया है तो चलिए अब हम आपको एक रियल लाइफ example कि मदद से समझने कि कोशिश करते है |

यहाँ पर हम आपको Interface को समझाने के लिए vehicles का सहारा लेते है जैसे कि bicycle , car और bike | इन सभी में कुछ common फंक्शनलिटी होती है तो हम एक Interface बनाते है और इन सभी common फंक्शनलिटी को इसमें रख देते है या फिर method define कर देते है |

और फिर बाद में ये bicycle , कार और बाइक अपनी अपनी क्लासेज में इस इंटरफ़ेस को implement करके इसमें dfine functionality को अपने अपने तरीके से use करेंगी |

import java.io.*;

interface Vehicle {
	
	// all are the abstract methods.
	void changeGear(int a);
	void speedUp(int a);
	void applyBrakes(int a);
}

class Bicycle implements Vehicle{
	
	int speed;
	int gear;
	
	// to change gear
	@Override
	public void changeGear(int newGear){
		
		gear = newGear;
	}
	
	// to increase speed
	@Override
	public void speedUp(int increment){
		
		speed = speed + increment;
	}
	
	// to decrease speed
	@Override
	public void applyBrakes(int decrement){
		
		speed = speed - decrement;
	}
	
	public void printStates() {
		System.out.println("speed: " + speed
			+ " gear: " + gear);
	}
}

class Bike implements Vehicle {
	
	int speed;
	int gear;
	
	// to change gear
	@Override
	public void changeGear(int newGear){
		
		gear = newGear;
	}
	
	// to increase speed
	@Override
	public void speedUp(int increment){
		
		speed = speed + increment;
	}
	
	// to decrease speed
	@Override
	public void applyBrakes(int decrement){
		
		speed = speed - decrement;
	}
	
	public void printStates() {
		System.out.println("speed: " + speed
			+ " gear: " + gear);
	}
	
}
class GFG {
	
	public static void main (String[] args) {
	
		// creating an inatance of Bicycle
		// doing some operations
		Bicycle bicycle = new Bicycle();
		bicycle.changeGear(2);
		bicycle.speedUp(3);
		bicycle.applyBrakes(1);
		
		System.out.println("Bicycle present state :");
		bicycle.printStates();
		
		// creating instance of the bike.
		Bike bike = new Bike();
		bike.changeGear(1);
		bike.speedUp(4);
		bike.applyBrakes(3);
		
		System.out.println("Bike present state :");
		bike.printStates();
	}
}

Interface(Interface In Java In Hindi) के बारे में जानने योग्य कुछ प्रमुख बातें:

हम Interface का object क्रिएट नहीं कर सकते है | पर हम इसका एक reference क्रिएट कर सकते है जो कि उस class के ऑब्जेक्ट को रेफेर करेगा जो इस Interface को implement करेगी|

एक क्लास एक से ज्यादा Interface को इम्प्लीमेंट कर सकती है |

एक interface एक या एक से अधिक इंटरफ़ेस को extend कर सकता है |

एक क्लास जो कि किसी Interface को इम्प्लीमेंट करती है उसे उस इंटरफ़ेस में मौजूद सभी methods को इम्प्लीमेंट करना पड़ता है |

इंटरफ़ेस में मौजूद सभी मेथड्स bydefault पब्लिक और abstract होते है | और सभी फील्ड्स public , static और final होते है |

Interface का उपयोग multiple inheritance को achieve करने के लिए भी किया जाता है |

Interface(Interface In Java In Hindi) का उपयोग Loose coupling को अचीव करने के लिए भी किया जाता है |

Conclusion:

तो दोस्तों इस ब्लॉग पोस्ट(Interface In Java In Hindi) के अंदर हमने java Interface के बारे में विस्तार में जाना और समझा है | Interface का main objective data abstraction को अचीव करना होता है | Interface के अंदर सभी methods By default abstract और public होते है | और सभी फ़ील्ड्स By डिफ़ॉल्ट पब्लिक, static एंड फाइनल होते है | Abstract method में केवल method सिग्नेचर ही declare किया जाता है उसमे कोई भी बॉडी डिफाइन नहीं कि जाती है |

इस ब्लॉग(Interface In Java In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते [email protected]पर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट (Interface In Java In Hindi) को खूब एन्जॉय किया होगा|

आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|

आपका समय शुभ हो|

Anurag

I am a blogger by passion, a software engineer by profession, a singer by consideration and rest of things that I do is for my destination.