우리 모두는 "포유류가 포효하는 소리", "울부짖는 소리", "으르렁거리는 소리", "야옹" 등과 같은 다양한 종류의 소리를 가지고 있다는 것을 알고 있습니다. 이것은 소리의 다형성 입니다.
따라서 클래스에 많은 하위 클래스가 있고 이러한 하위 클래스가 모두 상위 클래스의 메서드를 재정의하는 경우 하위 클래스에서 생성된 객체의 참조를 상위 클래스의 객체에 넣으면 객체의 업캐스트 객체를 얻습니다. 이때 상위 클래스의 메서드를 재정의할 때 서로 다른 하위 클래스가 서로 다른 동작을 생성할 수 있으므로 업캐스트 개체는 이 메서드를 호출할 때 다형성을 가질 수 있습니다.
예를 들어, dog 클래스의 상향 변환된 객체가 "bark" 메서드를 호출하면 생성된 동작은 "woof"이고, cat 클래스의 상향 변환된 객체가 "bark" 메서드를 호출하면 생성된 동작은 다음과 같습니다. "야옹" 등등.
다형성은 상위 클래스의 메서드가 해당 하위 클래스에 의해 재정의될 때 각 메서드가 고유한 기능적 동작을 생성할 수 있음을 의미합니다.
예를 들어:
클래스 동물 {voidcry(){}} 클래스 개 확장 동물 {voidcry(){System.out.println(wangwang);}} 클래스 고양이 확장 동물 {voidcry(){System.out.println(miaomiao);}} publicclassMain {publicstaticvoidmain(Stringargs[]){animal;animal=new dog();animal.cry();animal=new cat();animal.cry();}}
실행 결과는 다음과 같습니다.
왕왕미아오미아오