Java에서 정적 메서드를 오버로드하는 경우 컴파일 시간 다형성의 예입니다. 여기서는 java의 런타임 다형성에 중점을 둡니다. 업캐스팅과 다운캐스팅은 Java의 중요한 부분으로, 간단한 구문을 사용하여 복잡한 프로그램을 빌드할 수 있으며 다형성이나 다른 개체 그룹화와 같은 큰 이점을 제공합니다. Java는 하위 클래스 형식의 개체를 모든 수퍼클래스 형식의 개체로 처리하도록 허용합니다. 이를 업캐스팅이라고 합니다. 업캐스팅은 자동으로 수행되며 다운캐스팅은 프로그래머가 수동으로 수행해야하며, 왜 그렇게 되는지 설명하기 위해 최선을 다할 것입니다. 업캐스팅을 수행하면 하위 형식의 개체를 가리키는 일부 형식의 태그를 정의합니다(유형 및 하위 형식이 더 편안하다고 느끼는 경우 클래스 및 하위 클래스라고 할 수 있습니다.). 여기서는 애니멀 타입에 개 유형을 시전합니다. 애니멀은 강아지의 초유형이기 때문에 이 캐스팅을 업캐스팅이라고 합니다. Object는 Java의 모든 클래스의 루트 클래스이므로 B IS-A Object를 작성할 수 있습니다.
Java 형식 시스템은 기본 형식과 참조의 두 가지 유형으로 구성됩니다. 그러나 이제 우리는 우리에게 업 캐스팅을 제공하는 것을 설명 할 것입니다. 업 캐스팅 덕분에, 우리는 다형성을 활용할 수 있습니다. 런타임 다형성 전에 업캐스팅을 먼저 이해해 보겠습니다. 왜 그렇게, 그 업 캐스팅은 자동이지만, 다운 캐스팅은 수동해야합니까? 글쎄, 당신은 보시고, 업캐스팅은 결코 실패할 수 없습니다. 그러나 당신은 다른 개 그룹을 가지고 자신의 유형에 그들 모두를 다운 캐스팅하려는 경우, 다음이 개 중 일부는 실제로 다른 유형의 것을, 애완 동물, 경찰도, 프로세스는 ClassCastException을 던져, 실패합니다. Java에는 컴파일 타임 다형성과 런타임 다형성의 두 가지 유형이 있습니다. 메서드 오버로드 및 메서드 재정의에 의해 자바에서 다형성을 수행할 수 있습니다. 업캐스팅을 설명하기 위해 고양이 중 하나를 `동물` 유형으로 캐스팅할 수도 있습니다. 이 고양이의 `render` 메서드를 호출하면 이름을 포함하지 않는 `Animal` 클래스 render() 메서드를 사용한다는 의미입니다. 방법. 다형성은 2 개의 그리스어 단어에서 파생됩니다 : 폴리와 모프.