inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

그림으로 배우는 자바, 파트2: 객체지향!

업캐스팅과 메소드 오버라이딩

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

해결된 질문

303

김민찬

작성한 질문수 11

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]);

    }

  

  }

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

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

oop java

답변 1

1

홍팍

업 캐스팅이란

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

해당 코드에서

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

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

업 캐스팅의 장점은

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

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

객체지향 Java 파트2 붕어빵 문제 질문 있습니다.

0

140

2

11장 연습문제 6번

0

156

3

출력값이 다르다고 나오네요!

0

321

1

연습문제 이클립스에서는 되는데요

0

265

1

객체 배열과 반복문 강의 중

0

382

2

클래스 실행 순서가 궁금합니다.

0

662

2

자바api주사위통계 예제2번 질문있습니다

0

314

1

자바를 부탁해 질문

0

675

1

질문있습니다.

0

329

1

강의 정리 내용

0

332

1

유튜버 강의와 차이점 문의드립니다.

0

318

1

홍팍님 교재 문의

0

294

1

외부로부터 감추기 문제 질문

0

235

1

클래스가 다른데 메소드를 어떻게 가져오는건가요?

0

240

1

객체 생성할 때 매개변수에 new연산자는 왜 붙인건가요?

0

306

1

안녕하세요. 생성자관련?하여 질문드립니다.

0

205

1

홍팍쌤 안녕하세요

0

217

1

다형성(?)에대해 질문드립니다.

0

215

1

생성자

0

279

1

Object최상위 클래스에

0

209

1

질문있습니다.

0

166

1

질문있습니다.

0

151

1

void 질문있습니다.

0

177

1

return에 대해 질문있습니다

0

210

1