पाठ 20 / 38

पॉलीमॉर्फ़िज़्म

सुपरटाइप रेफ़रेंस से सबटाइप ऑब्जेक्ट रखें और JVM को डायनैमिक डिस्पैच द्वारा रनटाइम पर ओवरराइड मेथड चुनने दें।

एक रेफ़रेंस, कई टाइप

सुपरटाइप वेरिएबल कोई भी सबटाइप ऑब्जेक्ट रख सकता है। ओवरराइड मेथड कॉल पर JVM रनटाइम पर असली ऑब्जेक्ट का वर्शन चुनता है।

उदाहरण

नीचे का लूप woof फिर meow छापता है, जबकि हर तत्व का टाइप Animal है।

List<Animal> zoo = List.of(new Dog(), new Cat());
for (Animal a : zoo) System.out.println(a.sound());

Output:

woof
meow