Java에서 업캐스팅 및 다운캐스팅이란 무엇입니까? 간단한 설명

게시 됨: 2021-01-22

목차

자바의 업캐스팅과 다운캐스팅

Java에서 Typecasting은 한 데이터 유형을 다른 데이터 유형으로 변환하는 절차를 나타냅니다. 이것은 자동 및 수동으로 모두 수행할 수 있습니다. 프로그래머가 직접 수동 변환을 수행해야 하는 반면 자동 프로세스는 컴파일러를 사용합니다. 다운캐스팅과 업캐스팅은 본질적으로 두 가지 유형의 객체 유형 캐스팅입니다.

자식 개체와 부모 개체는 두 가지 고유한 개체 유형입니다. 이제 개체를 초기화할 수 있는 두 가지 방법이 있으며, 이후에 자식 및 부모 클래스의 속성도 상속합니다. 이러한 방법에는 다음이 포함됩니다.

  • Child c = new Child(): 자식 및 부모 클래스 아래에 있는 모든 멤버에 액세스
  • Parent p = new Child(): 부모 클래스 멤버와 자식 클래스에서 재정의된 메서드에만 액세스합니다.

기본적으로 부모에서 자식으로 캐스팅하는 것을 업캐스팅이라고 하고 자식에서 부모로 캐스팅하는 것을 다운캐스팅이라고 합니다.

typecasting 시스템은 변수가 함수에 의해 정확하게 처리되는지 여부를 확인하는 데 사용됩니다. 다운캐스팅은 암시적으로 가능하지 않지만 명시적 및 암시적으로 업캐스팅을 수행할 수 있습니다.

다운캐스팅과 업캐스팅은 모두 Java의 중요한 요소이며 사람들이 간단한 구문을 사용하여 복잡한 프로그램을 개발할 수 있도록 합니다. 또한 다양한 개체를 그룹화하거나 다형성과 같은 몇 가지 큰 이점이 있습니다.

세계 최고의 대학에서 온라인 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

업캐스팅

업캐스팅에서 자식 개체는 부모 클래스 개체에 대한 유형 변환입니다. 이 프로세스를 사용하면 부모에서 자식 클래스의 고유한 메서드와 변수에 쉽게 액세스할 수 있습니다. 재정의된 메서드와 같은 자식 클래스의 특정 메서드 및 변수 중 일부에만 액세스하면 됩니다. 많은 경우 업캐스팅을 확대 및 일반화라고도 합니다. 업캐스팅은 암시적으로 수행될 수 있으며 사람들에게 부모 클래스의 구성원에 액세스할 수 있는 유연성을 제공합니다.

다음 예는 프로세스를 더 잘 이해하는 데 도움이 될 수 있습니다.

예: 다양한 동물 클래스를 특징으로 하는 동물 클래스가 있으며 물고기도 그 중 하나입니다. 이제 동물 클래스가 물고기 클래스에 의해 확장되었다고 가정하면 두 가지 상속 방법이 있습니다. 상속은 한 클래스가 다른 클래스의 기능을 상속할 수 있도록 하는 객체 지향 프로그래밍 또는 OOP의 주요 측면 중 하나입니다. 이것은 기본 클래스의 상위 집합인 파생 클래스를 의미합니다. 여기에는 기본 클래스보다 더 많은 메서드가 포함될 수 있습니다. 업캐스트 동안 클래스 인터페이스에서 발생할 수 있는 유일한 일은 메서드를 얻는 대신 손실될 수 있다는 것입니다. 그 결과 컴파일러는 특별한 표기법이나 명시적 캐스트 없이도 업캐스팅을 가능하게 합니다.

구성 대 상속

객체 지향 프로그래밍에 관해서는 클래스에서 메소드와 데이터를 함께 패키징하는 것만으로 done을 만들고 사용하다가 나중에 해당 클래스에 있는 객체를 사용하게 될 가능성이 높습니다. 사람들은 특정 기존 클래스를 사용하여 구성이 있는 새 클래스를 개발할 수도 있습니다. 상속은 비교적 드물게 사용됩니다. 상속이 많은 관심을 받고 있음에도 불구하고 OPP를 배우는 동안 개발자는 올바른 사용법을 알고 가능한 한 간단하게 사용하려고 하지 않는 것이 중요합니다.

사실, 상속이 실제로 유용한 것으로 밝혀진 시나리오에서만 아주 드물게 사용해야 합니다. 사람이 상속 또는 합성을 사용해야 하는지 여부를 식별하는 가장 간단한 방법 중 하나는 새 캐스트에서 기본 캐스트로 업캐스트해야 하는지 여부에 대해 스스로에게 질문하는 것입니다. 업캐스팅이 필요한 경우 상속을 사용해야 합니다. 그러나 그것이 요구 사항이 아닌 경우 상속의 필요성에 대해 더 깊이 생각해야합니다.

다운캐스팅

다운캐스팅은 객체 유형 캐스팅의 또 다른 형태이며 Java에서 허용되지 않는 상위 클래스에 대한 하위 클래스 참조 객체를 지정하는 데 사용됩니다. 다운캐스트는 이해하기 어렵지 않습니다. 예를 들어 기본 클래스와 기본 클래스에서 간접적으로 또는 간접적으로 파생되는 클래스가 있는 경우 기본 클래스 유형의 개체가 파생 클래스로 계속 유형 변환되는 경우 이를 다운캐스트라고 합니다. 결과적으로 다운캐스팅에 따라 기본 클래스 개체를 가져온 다음 파생 클래스 유형으로 변환하여 상속 다이어그램으로 이동합니다. 그러나 작성 중인 코드에 따라 다운캐스팅이 의미가 있을 수도 있고 그렇지 않을 수도 있다는 점에 유의하는 것이 중요합니다.

사람들이 다운캐스팅 시스템을 수행할 때 어떤 유형의 컴파일러 오류도 발생하지 않습니다. 그러나 런타임 예외인 java.lang.ClassCastException에 직면하게 됩니다. 이제 Java에서 다운캐스팅이 가능하지 않은 경우 사람들이 다운캐스팅을 수행하는 이유에 대한 질문이 발생합니다. 간단히 말해서 다운캐스팅은 부모 클래스가 참조하는 객체가 하위 클래스에 속하는 특정 상황에서만 사용할 수 있습니다.

다운캐스팅은 한 개체를 다른 개체와 비교할 때 매우 유용할 수 있습니다.

다운 캐스팅이 유효한지 확인하려면 다음을 실행할 수 있습니다.

getClass() 시스템을 사용하면 개발자가 전달되는 개체의 클래스를 이해하고 이후에 현재 클래스와 비교할 수 있습니다. 동일하지 않은 경우 다운캐스팅은 유효하지 않으며 이 프로세스를 시도하는 것은 무의미합니다. 다운캐스팅의 개념은 주로 수퍼 유형을 하위 유형으로 캐스팅하는 것을 사용합니다. 이러한 캐스팅 프로세스는 일반적으로 명시적인 방식으로 수행됩니다. 이것은 기본적으로 더 큰 크기의 유형이 명시적으로 작은 크기 유형에 맞게 만들어짐을 의미합니다.

업캐스팅 대 다운캐스팅

업캐스팅과. 다운캐스팅에는 매우 특정한 차이점이 있습니다. 그 중 일부는 다음 포인터에 간략하게 밑줄이 그어져 있습니다.

  • Upcasting에서 자식 개체는 부모 개체로 유형 변환됩니다. 반면에 다운캐스팅과 관련하여 상위 클래스 객체의 참조는 결국 하위 클래스로 전달됩니다.
  • 사람들은 명시적 및 암시적으로 업캐스팅을 수행할 수 있지만 다운캐스팅은 명시적으로만 수행할 수 있습니다.
  • 업캐스팅의 경우 사람들은 자식 클래스에서 부모 클래스의 변수와 메서드에 액세스할 수 있지만 그 반대는 액세스할 수 없습니다. 그러나 다운캐스팅에서는 두 클래스의 변수와 메서드에 쉽게 액세스할 수 있습니다.
  • 업캐스팅을 사용하면 특정 자식 클래스 메서드에만 액세스할 수 있습니다. 둘 다 다운캐스팅을 수행할 때 두 클래스 아래에 있는 모든 메서드와 변수에 액세스할 수 있습니다.

결론

업캐스팅은 Java에서 거의 사용되지 않습니다. 대부분의 경우 사람들은 부모 클래스만 처리하는 코드를 개발해야 할 때 사용합니다. 자식 클래스의 동작에 대한 액세스를 제공하는 코드를 개발할 때 다운캐스팅이 사용되는 경향이 있습니다.

자바 를 배우고 클라우드 컴퓨팅 자격증도 취득하고 싶다면 upGrad 클라우드 컴퓨팅에서 고급 인증 프로그램을 제공합니다 . 7.5개월짜리 온라인 과정은 일하는 전문가가 클라우드 컴퓨팅 역할을 시작할 수 있도록 특별히 고안되었습니다.

풀 스택 개발자 되기

리버풀 JOHN MOORES의 컴퓨터 과학 석사를 지금 지원하십시오