업캐스팅에 대해 질문드리고 싶습니다.
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는 자식 객체가 됩니다.
따라서, 부모 배열에 자식 객체가 들어가는 것 또한 업캐스팅이 됩니다.
업 캐스팅의 장점은
서로 다른 객체를 부모의 타입으로 공통 관리할 수 있는 장점이 있습니다.
사실, 업 캐스팅의 장점이라기 보다는 상속의 장점 또는 인터페이스의 장점으로 보는 것이 더 바람직 합니다.
객체지향 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





