# पॉलीमॉर्फ़िज़्म — कोर जावा

Source: https://www.geekswithgeeks.com/hi/core-java/java-polymorphism

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

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

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

## उदाहरण

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

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

Output:

```
woof
meow
```
