업캐스팅 예제

업캐스팅 예제
0 August 2, 2019

자바 프로그래밍 기사에서 우리는 자바 프로그래밍에서 업 캐스팅 대 다운 캐스팅의 개념을 자세히 설명합니다. 또한 두 개념의 차이점을 이해하기 위해 몇 가지 기본 예제와 다이어그램을 확인합니다. 선언 클래스가 부모이고 개체가 자식으로 만들어지면 암시적 캐스팅이 “Upcasting”인 발생합니다. 업캐스팅은 상속 트리위로 하위 유형을 수퍼타입으로 캐스팅합니다. 업캐스팅은 자동으로 수행되며 명시적으로 아무 것도 할 필요가 없습니다. 프로그램 스니펫을 살펴보겠습니다 – 참조 변수를 캐스팅해도 참조 변수가 참조하는 개체에 닿지 않고 이 개체에 다른 방식으로 레이블을 지정하여 작업 기회를 확장하거나 축소합니다. 업캐스팅은 이 개체에 사용할 수 있는 메서드 및 속성 목록을 좁히고 다운캐스팅을 확장할 수 있습니다. 업캐스팅은 슈퍼타입으로 캐스팅되고 다운캐스팅은 하위 유형으로 캐스팅됩니다. 업캐스팅은 항상 허용되지만 다운캐스팅에는 형식 검사가 포함되며 ClassCastException을 throw할 수 있습니다. 업캐스팅과 다운캐스팅은 프리미티브를 한 곳에서 다른 것으로 캐스팅하는 것과 는 달리 프로그래머가 캐스팅 오브젝트를 배우기 시작할 때 많은 혼란을 야기한다고 생각합니다. ====== 업캐스팅:- 메서드: 개체 c1은 클래스 “Figo”가 “new”로 지정되어 있기 때문에 클래스 메서드(Figo – 메서드를 재정의해야 함)를 참조합니다. 인스턴스 변수: 개체 c1 선언 클래스의 인스턴스 변수(“자동차”)를 참조합니다.

업캐스팅: 하위 클래스를 슈퍼 클래스로 캐스팅하려면 업캐스팅(또는 확대)을 사용합니다. 그것은 자동으로 발생, 명시적으로 아무것도 할 필요가 없습니다. 업캐스팅과 다운캐스팅은 Java의 중요한 부분으로, 간단한 구문을 사용하여 복잡한 프로그램을 빌드할 수 있으며 다형성이나 다른 개체 그룹화와 같은 큰 이점을 제공합니다. Java는 하위 클래스 형식의 개체를 모든 수퍼클래스 형식의 개체로 처리하도록 허용합니다. 이를 업캐스팅이라고 합니다. 업캐스팅은 자동으로 수행되며 다운캐스팅은 프로그래머가 수동으로 수행해야하며, 왜 그렇게 되는지 설명하기 위해 최선을 다할 것입니다. 업캐스팅 및 다운캐스팅은 형식 관계를 기반으로 합니다. 즉, `Animal` 형식의 데이터가 있는 경우 하위 유형인 `Dog`로 `다운캐스트`할 수 있습니다. 반대로, `개`라는 형식의 데이터가 있다면, 슈퍼타입 `애니멀`으로 `업캐스트`할 수 있습니다.

그러나 `int`와 `Animal` 또는 `Dog` 간에 는 형식 관계가 없기 때문에 두 유형 의 데이터를 `int`로 캐스팅할 수 없습니다. 업캐스팅은 Java의 또 다른 핵심 개념인 상속과 밀접한 관련이 있습니다. 참조 변수를 사용하여 보다 구체적인 형식을 참조하는 것이 일반적입니다. 그리고 우리가 이 것을 할 때마다 암시적 업캐스팅이 일어납니다. 기본 변환 및 참조 변수 캐스팅은 비슷해 보일 수 있지만 개념은 매우 다릅니다. 그러나 상속 트리를 명시적으로 캐스팅할 필요는 없습니다. 컴파일러는 고양이가 동물이며 오류를 표시하지 않는다는 것을 알고 있습니다. 하위 클래스의 메서드를 호출하려면 다운캐스트를 수행해야 합니다. 위와 같이 일반적으로 ClassCastException을 수행하여 위험을 감수합니다. 그러나 인스턴스 of 연산자 캐스트를 수행 하기 전에 개체의 런타임 형식을 확인할 수 있습니다., ClassCastExceptions를 방지할 수 있습니다.하지만 지금 우리에 게 업 캐스팅을 제공 하는 것에 대해 설명 합니다. 업 캐스팅 덕분에, 우리는 다형성을 활용할 수 있습니다. 이 코드는 문제 없이 컴파일됩니다.

그러나 실행하려고 하면 다운캐스팅에 대한 개체를 만들 수 있습니다. 이 타입에서도. : 기본 클래스 메서드 호출 위의 예제에서 cast() 및 isInstance() 메서드는 cast 및 instanceof 연산자 대신 에 해당 합니다. 업캐스팅을 사용하여 Cat 인스턴스에 사용할 수 있는 메서드 수를 제한했지만 인스턴스 자체를 변경하지는 않았습니다. 이제 우리는 고양이에 특정 아무것도 할 수 없습니다 – 우리는 동물 변수에 야옹 ()을 호출 할 수 없습니다. 우리는 고양이와 개를 추가하고 그들은 암시적으로 동물 유형에 업 캐스트됩니다. 각 고양이는 동물이며 각 개는 동물입니다. 그들은 다형성입니다.

Posted by medmedia