본문 바로가기
* Web/[Back] Java

[Java] 자바 : (상속) 업 캐스팅 개념?

by codinguser 2021. 3. 18.

영어 단어 뜻 Upcasting의 의미란 무엇인가?


* casting

무언가를 선정한다는 의미이며

길거리 케스팅을 생각하면 쉽게 이해 할 수 있다.

 

 

그런 케스팅을 기반으로 위를 나타내는 Up이 추가되었다.

그럼 최종적으로 위에거를 선택한다 라는 뜻이 된다.

 

 

그렇다면 자바상에서 업케스팅이란?

클래스 기반으로 이루어져있는 자바에서 "상속"이라는 개념속에서 등장한다.

 

 

즉, 부모 클래스의 타입을 그대로 물려받는다는 뜻이다.

이 말의 의미는 최소 2개 이상의 클래스가 있어야 성립이 된다.

 

 

 

 

그렇다면 왜 쓸까?



다양한 객체들을 부모의 타입으로 관리 할 수가 있기 때문이다.

 

 

예를들어

 

Problem)

: 중복되는 코드가 넘쳐난다.

 

Horse h = new Horse();

Lion l = new Lion();

Cat c = new Cat();

 

으로 선언했다고 하자.

 

말, 사자, 고양이를 클래스로 나타낼 경우에 각 각의 중복된 코드가 발생이 된다.

 

 

 

Solution)

 

↓(Upcasting 적용)

 

 

Aniaml h = new Horse();

Animal l = new Lion();

Animal c = new Cat();

 

Animal[] animals = {h, l, c};

 

class Animal {

      //로 3개의 공통점을 적어주고 각 특징을 나타내기 위해서 각 개별 클래스를 상속 시키면 된다. //

}

 

 

 

class Horse extends Animal{

}

 

class Lion extends Animal{

 

}

 

class Cat extends Animal{

}

 

 

 

 

댓글