업캐스팅 예제

업캐스팅 및 다운캐스팅은 형식 관계를 기반으로 합니다. 즉, `Animal` 형식의 데이터가 있는 경우 하위 유형인 `Dog`로 `다운캐스트`할 수 있습니다. 반대로, `개`라는 형식의 데이터가 있다면, 슈퍼타입 `애니멀`으로 `업캐스트`할 수 있습니다. 그러나 `int`와 `Animal` 또는 `Dog` 간에 는 형식 관계가 없기 때문에 두 유형 의 데이터를 `int`로 캐스팅할 수 없습니다. ====== 업캐스팅:- 메서드: 개체 c1은 클래스 “Figo”가 “new”로 지정되어 있기 때문에 클래스 메서드(Figo – 메서드를 재정의해야 함)를 참조합니다. 인스턴스 변수: 개체 c1 선언 클래스의 인스턴스 변수(“자동차”)를 참조합니다. 업캐스팅: 하위 클래스를 슈퍼 클래스로 캐스팅하려면 업캐스팅(또는 확대)을 사용합니다. 그것은 자동으로 발생, 명시적으로 아무것도 할 필요가 없습니다. 선언 클래스가 부모이고 개체가 자식으로 만들어지면 암시적 캐스팅이 “Upcasting”인 발생합니다.

업캐스팅과 다운캐스팅은 프리미티브를 한 곳에서 다른 것으로 캐스팅하는 것과 는 달리 프로그래머가 캐스팅 오브젝트를 배우기 시작할 때 많은 혼란을 야기한다고 생각합니다. 업캐스팅은 슈퍼타입으로 캐스팅되고 다운캐스팅은 하위 유형으로 캐스팅됩니다. 업캐스팅은 항상 허용되지만 다운캐스팅에는 형식 검사가 포함되며 ClassCastException을 throw할 수 있습니다. 자바 프로그래밍 기사에서 우리는 자바 프로그래밍에서 업 캐스팅 대 다운 캐스팅의 개념을 자세히 설명합니다. 또한 두 개념의 차이점을 이해하기 위해 몇 가지 기본 예제와 다이어그램을 확인합니다. 업캐스팅과 다운캐스팅은 Java의 중요한 부분으로, 간단한 구문을 사용하여 복잡한 프로그램을 빌드할 수 있으며 다형성이나 다른 개체 그룹화와 같은 큰 이점을 제공합니다. Java는 하위 클래스 형식의 개체를 모든 수퍼클래스 형식의 개체로 처리하도록 허용합니다. 이를 업캐스팅이라고 합니다. 업캐스팅은 자동으로 수행되며 다운캐스팅은 프로그래머가 수동으로 수행해야하며, 왜 그렇게 되는지 설명하기 위해 최선을 다할 것입니다. 업캐스팅은 상속 트리위로 하위 유형을 수퍼타입으로 캐스팅합니다.

업캐스팅은 자동으로 수행되며 명시적으로 아무 것도 할 필요가 없습니다. 프로그램 스니펫을 살펴보겠습니다 – 참조 변수를 캐스팅해도 참조 변수가 참조하는 개체에 닿지 않고 이 개체에 다른 방식으로 레이블을 지정하여 작업 기회를 확장하거나 축소합니다. 업캐스팅은 이 개체에 사용할 수 있는 메서드 및 속성 목록을 좁히고 다운캐스팅을 확장할 수 있습니다. 업캐스팅은 Java의 또 다른 핵심 개념인 상속과 밀접한 관련이 있습니다. 참조 변수를 사용하여 보다 구체적인 형식을 참조하는 것이 일반적입니다. 그리고 우리가 이 것을 할 때마다 암시적 업캐스팅이 일어납니다. ClassCastException은 다운캐스트하는 형식이 실제 개체의 형식과 일치하지 않는 경우 런타임에 항상 throw됩니다. feed() 메서드는 각 동물을 검사하고 T. 참고의 인스턴스인 동물만 반환합니다: 여기 참조를 통해 ojects의 메모리 주소를 변경하지 않는다는 의미입니다. 케이스 개 우리는 고양이가 Animal에서 기능의 일부를 상속하기 때문에 컴파일 타임 또는 런타임에 “자연 / 암시적 / 자동”방식으로 그렇게 할 수 있습니다.

예를 들어,()를 이동합니다. (적어도 고양이는 동물이지 않습니까?) 우리는 동물 변수가 고양이의 인스턴스를 의미한다는 것을 알고 있습니다. 그리고 우리는 동물에 고양이의 야옹 () 방법을 호출 할 수 있습니다. 그러나 컴파일러는 animal 형식에 대해 meow() 메서드가 존재하지 않는다고 불평합니다. 이것이 객체를 수퍼 클래스 유형으로 참조한 경우 개체를 수동으로 다운캐스트해야 하는 이유입니다. . Animal 형식의 변수를 사용하여 Cat 클래스에서만 사용할 수 있는 메서드를 호출하려면 어떻게 해야 합니까? 여기에 다운 캐스팅이 온다. 슈퍼 클래스에서 하위 클래스로 캐스팅하는 것입니다. 내부 괄호와 괄호가 포함된 형식을 캐스트 연산자라고도 합니다. 코드를 컴파일하려면 외부 괄호도 필요합니다.