సూపర్ కీవర్డ్ వివిధ పరిస్థితులలో ఉపయోగించబడుతుంది . ఈ పోస్ట్తో ప్రారంభించడానికి ముందు, మెరుగైన అవగాహన కోసం జావాలో వారసత్వం గురించి తెలుసుకోవడానికి మేము మిమ్మల్ని ప్రోత్సహిస్తున్నాము.
జావాలో సూపర్ కీవర్డ్ ఏమిటి?
సూపర్ అనేది సూపర్క్లాస్ యొక్క ఓవర్రైడ్ పద్ధతులను అమలు చేయడానికి, అలాగే సూపర్క్లాస్ యొక్క దాచిన ఫీల్డ్లను సూచించడానికి ఉపయోగించే కీలక పదం.సూపర్ కీవర్డ్ను ఎందుకు మరియు ఎప్పుడు ఉపయోగించాలి?
జావా సూపర్ కీవర్డ్ మూడు స్పష్టమైన ఉపయోగాలను కలిగి ఉంది.- పిల్లల తరగతి కూడా అదే పేరుతో డేటా సభ్యులను కలిగి ఉన్నప్పుడు మాతృ తరగతిలోని డేటా సభ్యులను యాక్సెస్ చేయండి .
- చైల్డ్ క్లాస్లోని మాతృ తరగతికి చెందిన డిఫాల్ట్ లేదా పారామీటర్ చేయబడిన కన్స్ట్రక్టర్లను కాల్ చేయండి .
- పిల్లలకి ఓవర్రైడ్ పద్ధతులు ఉంటే చైల్డ్ క్లాస్లోని పేరెంట్ క్లాస్ పద్ధతులకు కాల్ చేయండి .
ఉదాహరణ 1 - తల్లిదండ్రుల డేటా సభ్యులను యాక్సెస్ చేయండి
ఉదాహరణ 1 కార్ -టైప్ చైల్డ్ క్లాస్లో వెహికల్ క్లాస్లోని అట్రిబ్యూట్లు లేదా డేటా మెంబర్లను ఎలా యాక్సెస్ చేయవచ్చో వివరిస్తుంది. మీరు బాగా అర్థం చేసుకోవడానికి దిగువ స్నిప్పెట్ని అమలు చేశారని నిర్ధారించుకోండి.class Vehicle {
String name = "vehicle";
}
class Car extends Vehicle {
String name = "car";
public void printMyName() {
System.out.println(name);
}
public void printParentName() {
// use super keyword to access
// parent's data member / attribute
System.out.println(super.name);
}
public static void main(String[] args) {
Car myCar = new Car();
System.out.print("My Car's Name: ");
myCar.printMyName();
// printing the parent's name
// using the super keyword
System.out.print("My Parent Vehicle's Name: ");
myCar.printParentName();
}
}
అవుట్పుట్
నా కారు పేరు: కారు నా తల్లితండ్రుల వాహనం పేరు: వాహనం
ఉదాహరణ 2 - పిల్లల తరగతిలో తల్లిదండ్రుల కన్స్ట్రక్టర్లను యాక్సెస్ చేయండి
సూపర్() ని స్పష్టంగా కాల్ చేయడం ద్వారా పిల్లల తరగతిలోని మాతృ తరగతి యొక్క డిఫాల్ట్ లేదా పారామీటర్ చేయబడిన కన్స్ట్రక్టర్ రెండింటినీ యాక్సెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. పారామీటర్ చేయబడిన కన్స్ట్రక్టర్ యొక్క ఉదాహరణ ఇక్కడ ఉంది. పేరెంట్ అంటే షేప్ క్లాస్' కన్స్ట్రక్టర్ని చైల్డ్లో ( సూపర్() ఉపయోగించి) అంటారు, అంటే ట్రయాంగిల్ క్లాస్ని గుణాలను సెట్ చేయడానికి. మీ కోసం అవుట్పుట్ను పరీక్షించడానికి దిగువ ప్రోగ్రామ్ను అమలు చేయండి.public class Shape {
String name;
public Shape(String n) {
System.out.println("Shape() parameterized constructor called!");
name = n;
}
}
class Triangle extends Shape {
int sides = 3;
String color;
public Triangle(String n, String c) {
// The super keyword calls the parameterized
// constructor of the parent (Shape) with
// 'n' as a parameter
super(n);
System.out.println("Triangle() parameterized constructor called!");
this.color = c;
}
public static void main(String[] args) {
Triangle myTriangle = new Triangle("Triangle Alpha", "Yellow");
System.out.println(myTriangle.name);
System.out.println(myTriangle.color);
}
}
అవుట్పుట్
Shape() పారామిటరైజ్డ్ కన్స్ట్రక్టర్ అంటారు! ట్రయాంగిల్() పారామిటరైజ్డ్ కన్స్ట్రక్టర్ అంటారు! త్రిభుజం ఆల్ఫా పసుపు
త్వరిత సవాలు : మీ అభ్యాసాన్ని పరీక్షించడానికి డిఫాల్ట్ కన్స్ట్రక్టర్ని ఉపయోగించడం ద్వారా పై ప్రోగ్రామ్ను పునఃరూపకల్పన చేయండి. అలాగే, super() super(arg) నుండి ఎలా భిన్నంగా ఉందో చూడండి .
ఉదాహరణ 3 - పిల్లల తరగతిలో తల్లిదండ్రుల ఓవర్రైడ్ పద్ధతిని యాక్సెస్ చేయండి
పిల్లల తరగతి కూడా నిర్వచించే తల్లిదండ్రుల తరగతి పద్ధతులను మీరు ఎలా యాక్సెస్ చేయవచ్చో ఉదాహరణ 3 చూపిస్తుంది. దిగువ ప్రోగ్రామ్లోని పేరెంట్ క్లాస్ సౌండ్ వాయిస్() పద్ధతిని నిర్వచిస్తుంది . చైల్డ్ క్లాస్ డ్రమ్ కూడా అదే పేరుతో ఒక పద్ధతిని కలిగి ఉంది అంటే వాయిస్() . పద్ధతి వాయిస్ సబ్క్లాస్ ద్వారా భర్తీ చేయబడిందని దీని అర్థం. పిల్లల తరగతిలో పేరెంట్ క్లాస్ పద్ధతులను ఉపయోగించడానికి సూపర్ కీవర్డ్ ఎలా అవసరమో తెలుసుకోవడానికి దిగువ ప్రోగ్రామ్ను అమలు చేయండి .public class Sound {
public void voice() {
System.out.println("Play sound!");
}
}
class Drum extends Sound {
public void voice() {
System.out.println("Play drums!");
}
public void play() {
// The super keyword calls the
// voice() method of the parent
super.voice();
voice();
}
public static void main(String[] args) {
Drum myDrum = new Drum();
myDrum.play();
}
}
అవుట్పుట్
Shape() పారామిటరైజ్డ్ కన్స్ట్రక్టర్ అంటారు! ట్రయాంగిల్() పారామిటరైజ్డ్ కన్స్ట్రక్టర్ అంటారు! త్రిభుజం ఆల్ఫా పసుపు
GO TO FULL VERSION