जेव्हा काही लोक इनहेरिटन्सच्या Java OOP पॅराडाइमबद्दल बोलतात, तेव्हा त्यांचा अर्थ सामान्यतः इनहेरिटर, चाइल्ड क्लाससह पालक वर्ग वाढवणे असा होतो. तथापि, जेव्हा तुम्ही Java लागू करता कीवर्ड भेटता, तेव्हा याचा अर्थ असा होतो की आम्ही अॅब्स्ट्रॅक्शनच्या दुसर्या स्तरावर जातो आणि Java मधील इंटरफेससह कार्य करण्यास सुरवात करतो. इंटरफेस काय आहेत, ते कशासाठी आहेत, अंमलबजावणी कशी होते याबद्दल आपण बोलणार आहोत.
इंटरफेस आणि अंमलबजावणी म्हणजे काय
तुम्ही "इंटरफेस" हा शब्द अनेकदा ऐकला असेल. उदाहरणार्थ, संगणकामध्ये इनपुट इंटरफेस (माऊस आणि कीबोर्ड) असतो, अनेक प्रोग्राम्समध्ये वापरकर्ता इंटरफेस असतात. व्यापक अर्थाने, इंटरफेस दोन परस्परसंवादी पक्षांमधील दुवा आहे. उदाहरणार्थ, समान कीबोर्ड किंवा टीव्ही रिमोट कंट्रोल. प्रोग्रॅमिंगमध्ये आणि विशेषतः Java मध्ये, इंटरफेस हा एक विशिष्ट करार आहे जो तो लागू करणारा वर्ग काय करेल हे सांगते. इंटरफेस फक्त वर्तन परिभाषित करतो. ते अमलात आणणाऱ्या वस्तूबद्दल काहीही सांगत नाही. तुम्ही Java मध्ये इंटरफेस याप्रमाणे घोषित करू शकता:
public interface MyInterface {
// constants declaration
// methods without implementation
// static methods
// default methods (default)
// private methods
}
येथे जावा मधील इम्प्लिमेंट्सचे वाक्यरचना आहे :
public class MyClass implements MyInterface{
//implementing the methods of MyInterface
//Other code
}
इंटरफेस वर्तन निर्दिष्ट न करता त्याचे वर्णन करतो. उदाहरणार्थ, "हालचाल" सारखे वर्तन विविध प्रकारच्या वस्तूंवर लागू केले जाऊ शकते: एक सायकल, एक व्यक्ती, एक कार, नदीतील पाणी इ. पोहण्याचे वर्तन बदक, जहाज किंवा मासे यांचे वर्तन असू शकते. या वस्तूंमध्ये ते हलू शकतात किंवा पोहू शकतात याशिवाय काहीही साम्य नाही. होय, आणि पोहण्याच्या हालचालींमध्ये ते खूप भिन्न आहेत. तथापि, Java मध्ये तुम्ही डक , बोट , फिश क्लासेस तयार करू शकता आणि त्यांना पोहण्याची क्षमता लागू करू देऊ शकता. येथे Java Implements कीवर्ड वापरला जातो.
कीवर्ड उदाहरण लागू करा
public interface Swimmable {
void moveForward();
void TurnRight();
void TurnLeft();
}
जसे आपण पाहू शकता, पद्धती स्वतःच अंमलात आणल्या जात नाहीत. परंतु आम्ही घोषित केले की या इंटरफेसची अंमलबजावणी करणारे वर्ग सरळ रेषेत पोहण्यास सक्षम असले पाहिजेत, तसेच उजवीकडे आणि डावीकडे वळले पाहिजेत. चला वर्ग तयार करू जे हा इंटरफेस लागू करतील.
public class Duck implements Swimmable {
//implementing the methods
public void moveForward() {
System.out.println(" Quack, I am moving forward...");
}
public void TurnRight(){
System.out.println("I am turning right...");
}
public void TurnLeft(){
System.out.println("I am turning left...");
}
public void Stop() {
System.out.println("Quack. I am relaxing on the surface of the water...");
}
}
public class Fish implements Swimmable {
public void moveForward() {
System.out.println("I am moving forward...");
}
public void TurnRight(){
System.out.println("I am turning right...");
}
public void TurnLeft() {
System.out.println("I am turning left...");
}
public void turnUp(){
System.out.println("I am turning up...");
}
public void turnDown(){
System.out.println("I am turning down...");
}
public void Stop() {
System.out.println("I am relaxing somewhere under the water surface...");
}
}
करारानुसार पोहण्यायोग्य इंटरफेसची अंमलबजावणी करणारे सर्व वर्ग पुढे पोहण्यास सक्षम असणे आवश्यक आहे ( moveForward() पद्धत लागू करणे, तसेच उजवीकडे आणि डावीकडे वळणे आवश्यक आहे. या पद्धतींची अंमलबजावणी आवश्यक आहे. बदक आणि मासा वेगळ्या पद्धतीने पोहतात. समजा माशाकडे दोन अतिरिक्त पद्धती आहेत ज्या त्याच्या वर आणि खाली पोहण्याच्या क्षमतेची अंमलबजावणी करतात. पोहण्यायोग्य इंटरफेसमध्ये हे नाही. तथापि, जर आपण फिश क्लासचे एक मूल तयार केले, उदाहरणार्थ, ट्यूना किंवा सॅल्मन, ते, प्रत्येक "माशा" प्रमाणे, वर आणि खाली पोहण्यास सक्षम असतील.
Java मध्ये एकाधिक इंटरफेस
तुम्हाला कदाचित आधीच माहित आहे की, Java एकाधिक वारसा समर्थन देत नाही. याचा अर्थ असा की एक वर्ग केवळ एका सुपरक्लासमधून वारसा मिळू शकतो. तथापि, आपण जावामध्ये "एकाधिक वारसा" वापरू शकता, कारण एक वर्ग एकाधिक इंटरफेस लागू करू शकतो.
To implement multiple interfaces, use the next syntax:
interface MyFirstInterface {
public void myMethod();
}
interface MySecondInterface {
public void myOtherMethod();
}
// MyClass implements both MyFirstInterface and MySecondInterface
class MyClass implements MyFirstInterface, MySecondInterface {
public void myMethod() {
//method implementation
}
public void myOtherMethod() {
//method implementation
}
}
एकाधिक इंटरफेसचे उदाहरण
लक्षात ठेवा की बदक केवळ पोहू शकत नाही तर उडू शकते. चला फ्लाइट इंटरफेस लिहू आणि ते आमच्या डकमध्ये लागू करू.
public interface Flyable {
double startAge = 0.1;
void fly();
}
public class Duck implements Swimmable, Flyable {
public void moveForward() {
System.out.println(" Quack, I am moving forward...");
}
public void TurnRight(){
System.out.println("I am turning right...");
}
public void TurnLeft(){
System.out.println("I am turning left...");
}
public void Stop() {
System.out.println("Quack. I am relaxing on the surface of the water...");
}
public void fly(){
System.out.println("I am flying!!!");
}
}
आणि पुन्हा, हे लक्षात ठेवणे महत्त्वाचे आहे की आपण इंटरफेस का लिहित आहोत. समजा जर ते पक्षी, विमान, स्कायडायव्हर आणि डँडेलियनद्वारे अंमलात आणले गेले तर त्यांची उड्डाणे पूर्णपणे भिन्न असतील.
GO TO FULL VERSION