పాలీమార్ఫిజం అనేది ఒక వస్తువు బహుళ రూపాలను తీసుకునే సామర్ధ్యం. జావాలో, పాలిమార్ఫిజం రెండు మెకానిజమ్ల ద్వారా సాధించబడుతుంది: మెథడ్ ఓవర్లోడింగ్ మరియు మెథడ్ ఓవర్రైడింగ్.
- పద్ధతి ఓవర్లోడింగ్: పద్ధతి ఓవర్లోడింగ్ ఒక తరగతిని ఒకే పేరుతో కానీ విభిన్న పారామితులతో బహుళ పద్ధతులను కలిగి ఉండటానికి అనుమతిస్తుంది. ఒక పద్ధతిని పిలిచినప్పుడు, దానికి పంపబడిన వాదనల ఆధారంగా ఏ పద్ధతిని కాల్ చేయాలో జావా నిర్ణయిస్తుంది. మెథడ్ ఓవర్లోడింగ్ అనేది కంపైల్-టైమ్ పాలిమార్ఫిజం, ఎందుకంటే కంపైల్-టైమ్లో ఏ పద్ధతిని కాల్ చేయాలో నిర్ణయం తీసుకోబడుతుంది.
ఉదాహరణ:
csharpclass Calculator {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
System.out.println(calculator.add(1, 2)); // Output: 3
System.out.println(calculator.add(1, 2, 3)); // Output: 6
}
}
ఈ ఉదాహరణలో, క్లాస్ ఒకే పేరుతో Calculator
రెండు పద్ధతులను నిర్వచిస్తుంది కానీ వేర్వేరు సంఖ్యల వాదనలు. add
పద్ధతిని add
పిలిచినప్పుడు, జావా దానికి పంపబడిన ఆర్గ్యుమెంట్ల సంఖ్య ఆధారంగా ఏ పద్ధతి యొక్క సంస్కరణను కాల్ చేయాలో నిర్ణయిస్తుంది.
- మెథడ్ ఓవర్రైడింగ్: మెథడ్ ఓవర్రైడింగ్ అనేది ఒక సబ్క్లాస్ను వారసత్వ పద్ధతికి దాని స్వంత అమలును అందించడానికి అనుమతిస్తుంది. ఆబ్జెక్ట్పై ఒక పద్ధతిని పిలిచినప్పుడు, రన్టైమ్లో ఆబ్జెక్ట్ యొక్క వాస్తవ రకం ఆధారంగా ఏ పద్ధతిని కాల్ చేయాలో జావా నిర్ణయిస్తుంది. మెథడ్ ఓవర్రైడింగ్ అనేది రన్టైమ్ పాలిమార్ఫిజం, ఎందుకంటే ఏ పద్ధతిని కాల్ చేయాలో రన్టైమ్లో నిర్ణయించబడుతుంది.
ఉదాహరణ:
టైపుస్క్రిప్ట్class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Animal dog = new Dog();
animal.makeSound(); // Output: "Animal makes a sound"
dog.makeSound(); // Output: "Dog barks"
}
}
ఈ ఉదాహరణలో, తరగతి సాధారణ సందేశాన్ని ముద్రించే పద్ధతిని Animal
నిర్వచిస్తుంది మరియు తరగతి "కుక్క మొరలు" అని ముద్రించే దాని స్వంత అమలుతో ఈ పద్ధతిని భర్తీ చేస్తుంది. పద్ధతిని ఉదాహరణగా పిలిచినప్పుడు , అవుట్పుట్ "జంతువు ధ్వనిస్తుంది". ఏదేమైనప్పటికీ, అదే పద్ధతిని ఒక సందర్భంలో పిలిచినప్పుడు , అవుట్పుట్ "డాగ్ బార్క్స్"గా ఉంటుంది, ఇది మెథడ్ ఓవర్రైడింగ్ సబ్క్లాస్ను వారసత్వ పద్ధతికి దాని స్వంత అమలును అందించడానికి ఎలా అనుమతిస్తుంది అని చూపిస్తుంది.makeSound
Dog
makeSound
Animal
Dog
పాలీమార్ఫిజం అనేది ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్లో శక్తివంతమైన భావన, ఇది మీ కోడ్లో ఎక్కువ సౌలభ్యం మరియు మాడ్యులారిటీని అనుమతిస్తుంది. ఆబ్జెక్ట్లు బహుళ రూపాలను తీసుకోవడానికి అనుమతించడం ద్వారా, మీరు మరింత సాధారణ మరియు పునర్వినియోగ కోడ్ను వ్రాయవచ్చు, దానిని సులభంగా పొడిగించవచ్చు మరియు అవసరమైన విధంగా అనుకూలీకరించవచ్చు.