जावा विरासत
जावा वंशानुक्रम (उपवर्ग और सुपरक्लास)
जावा में, एक वर्ग से दूसरे वर्ग में विशेषताओं और विधियों को इनहेरिट करना संभव है। हम "विरासत अवधारणा" को दो श्रेणियों में समूहित करते हैं:
- उपवर्ग (बच्चा) - वह वर्ग जो किसी अन्य वर्ग से विरासत में मिला है
- सुपरक्लास (अभिभावक) - जिस वर्ग से विरासत में मिला है
किसी वर्ग से इनहेरिट करने के लिए, extends
कीवर्ड का उपयोग करें।
नीचे दिए गए उदाहरण में, Car
वर्ग (उपवर्ग) वर्ग (सुपरक्लास) से विशेषताओं और विधियों को प्राप्त करता है Vehicle
:
उदाहरण
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
क्या आपने protected
वाहन में संशोधक को देखा?
हम वाहन में ब्रांड विशेषता को एक्सेस संशोधक पर सेट करते हैं । यदि इसे पर सेट किया गया था , तो कार वर्ग इसे एक्सेस नहीं कर पाएगा।protected
private
"विरासत" का उपयोग क्यों और कब करें?
- यह कोड पुन: प्रयोज्य के लिए उपयोगी है: जब आप एक नया वर्ग बनाते हैं तो मौजूदा वर्ग की विशेषताओं और विधियों का पुन: उपयोग करें।
युक्ति: अगले अध्याय, बहुरूपता पर भी एक नज़र डालें , जो विभिन्न कार्यों को करने के लिए विरासत में मिली विधियों का उपयोग करता है।
अंतिम कीवर्ड
यदि आप नहीं चाहते कि अन्य वर्ग किसी वर्ग से इनहेरिट करें, तो final
कीवर्ड का उपयोग करें:
यदि आप किसी final
वर्ग तक पहुँचने का प्रयास करते हैं, तो जावा एक त्रुटि उत्पन्न करेगा:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
आउटपुट कुछ इस तरह होगा:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)