ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA UPCASTING VS DOWNCASTING (자바 업캐스팅)
    프로그래밍 JAVA 2020. 7. 3. 00:04

    JAVA UPCASTING VS DOWNCASTING (자바 업캐스팅)

    자바의 업캐스트 대 다운캐스트


    형식 지정은 기본적으로 한 데이터 유형의 다른 데이터 유형으로의 변환을 암묵적으로 또는 명시적으로 다루는 가장 중요한 개념 중 하나이다.

     

    이 글에서는, 사물에 대한 타입캐스팅의 개념에 대해 논한다.

    데이터 유형과 마찬가지로 개체도 타이프로 캐스팅할 수 있다.

     

    그러나 개체에는 상위 개체와 하위 개체 두 가지 유형만 있다.

     

    따라서 객체의 타입캐스트는 기본적으로 한 유형의 객체(즉, 하위 또는 상위)를 다른 개체로 전송하는 것을 의미한다. 타이프 캐스팅에는 두 가지 유형이 있다.

    다음 구성 요소:


    업캐스트:

     

    업캐스트는 자식 개체를 부모 개체로 보내는 유형이다. 업캐스트는 암묵적으로 할 수 있다.

    업캐스트는 우리에게 부모 클래스 멤버에 접근할 수 있는 유연성을 주지만, 이 기능을 사용하여 모든 자식 클래스 멤버에 접근할 수는 없다.

    모든 멤버들 대신에, 우리는 아동 클래스의 특정 멤버들에 접근할 수 있다. 예를 들어, 우리는 재정의된 방법에 접근할 수 있다.


    다운캐스팅:

     

    마찬가지로 다운캐스팅(downcasting): 다운캐스팅(downcasting)은 부모 개체를 자식 개체에 대한 유형캐스팅(typecasting)을 의미한다. 다운캐스트는 암묵적으로 있을 수 없다.


    다음 이미지는 업캐스팅과 다운캐스팅의 개념을 보여준다.

     

    예: 부모 클래스를 두십시오. 부모 자식도 많을 수 있다.

     

    그 아이들 중 한 명을 배려해 보자.

    그 아이는 부모의 속성을 상속받는다. 따라서 아이와 부모 사이에는 "is-a" 관계가 있다.

     

    따라서, 아이는 부모에게 암묵적으로 업스트림될 수 있다. 그러나 부모는 자녀의 재산을 상속받을 수도 있고 상속하지 않을 수도 있다.

     

    하지만, 우리는 아이를 다운캐스트라고 알려진 부모에게 강제로 보낼 수 있다.

     

    이러한 유형의 주물을 명시적으로 정의한 후 컴파일러는 이 유형의 주물이 가능한지 여부를 백그라운드에서 점검한다. 불가능한 경우 컴파일러는 ClassCastException을 던진다.

     

    업캐스트의 구문:


    상위 p = 새 하위();
    업캐스트는 내부적으로 수행되며, 업캐스트로 인해 객체는 모든 멤버가 아닌 부모 클래스 멤버와 자식 클래스 지정 멤버(오버라이드 방식 등)만 액세스할 수 있다.
    // 이 변수는
    // 접근 가능
    p.id = 1;


    다운캐스트의 구문:


    Child c = (Child)p;
    다운캐스트는 외부에서 수행되어야 하며 다운캐스트로 인해 하위 개체는 상위 개체의 속성을 획득할 수 있다.
    c.name = p.name;

     

    댓글

Designed by Tistory.