• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

업캐스팅에 대해 질문드리고 싶습니다.

21.02.15 22:12 작성 조회수 146

0

1.첫번째 내용에 업캐스팅후 해당 부모의 배열안에 넣는 내용을 배웠는데,

두번째 내용의 도형의 넓이를 구하는 과정에서 먼저 부모배열에 넣은 후 업캐스팅을 하여 메소드 오버라이딩을 보여주는것을 보았습니다.

해당 내용으로 복습하면서, 업캐스팅을 하지 않아도 부모 배열에 넣을 수 있는 것으로 결과물이 나왔습니다.

public static void main(String[] args) {

    // 기사 객체 생성 및 초기화

    Knight knight = new Knight();

    knight.name = "아서스";

    knight.hp = 180;

    knight.strength = 50;

    // 도적 객체 생성 및 초기화

    Thief thief = new Thief();

    thief.name = "발리라";

    thief.hp = 120;

    thief.agility = 40;

           Adventurer[] advs = { knight, thief };

           #toString 내용 출력

      for (int i = 0; i < advs.length; i++) {

      System.out.println(advs[i]);

    }

  

  }

부모 배열에 자식 객체가 그냥 들어가는것으로 보이는데,

업캐스팅을 통해 부모 객체로 통일후 관리하면 어떤이점이 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

업 캐스팅이란

자식 객체가 부모 타입으로 해석되는 것입니다.

해당 코드에서

Adventurer 부모 타입이 되고, knight와 thief는 자식 객체가 됩니다.

따라서, 부모 배열에 자식 객체가 들어가는 것 또한 업캐스팅이 됩니다.

업 캐스팅의 장점은

서로 다른 객체를 부모의 타입으로 공통 관리할 수 있는 장점이 있습니다.

사실, 업 캐스팅의 장점이라기 보다는 상속의 장점 또는 인터페이스의 장점으로 보는 것이 더 바람직 합니다.