inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Do it! 자바 프로그래밍 입문 with 은종쌤

오버라이딩과 다형성(3)

형 변환의 이유가 궁금합니다.

251

코린이

작성한 질문수 3

0

형 변환을 사용하면 선생님께서 설명해주신 것처럼 쓸 수 있다는 것은 이해가 되었습니다.

VIPCustomer customerWho = new VIPCustomer(10010, "Who", 100);

그런데 위와 같이 형 변환을 하지 않고 그대로 적은 것이랑 무슨 차이가 있는지 모르겠습니다.

감사합니다.

업캐스팅 java

답변 2

2

const.takeo

VIPCustomer customerWho = new VIPCustomer(10010, "Who", 100)의 경우는 

VIPCustomer 클래스에 적혀있는 메소드와 멤버변수를 사용할수있겠죠

타입을

Customer customerWho = new VIPCustomer(10010, "Who", 100) 로 했을경우에는

Customer 클래스에 정의한 메소드와 멤버변수를 활용할수있을것이구요

0

코린이

답변 감사합니다!

그런데 VIPCustomer는 이미 Customer를 상속받고 있어서 Customer의 메소드와 멤버변수를 사용할 수 있으니 VIPCustomer customerWho = new VIPCustomer(10010, "Who", 100)로 하는 것이 더 범용성이 큰 것 아닌가요?

2

const.takeo

VIPCustomer는 Customer를 상속받았으나 calcPrice라는 메소드를 오버라이딩해서 재정의했기때문에 메소드를 실행했을때의 결과값이 다릅니다.

따라서 상황에 맞게 타입을 정해서 사용해주시면 될것같습니다.

일반 고객도있어야하고

VIP고객도 있어야하기때문에

일반고객타입 -> Customer타입을 만들어두고

VIP고객타입 -> Customer타입을 계승

두개의 타입으로 나눈거고

VIP고객의 경우 별도의 할인가격이 필요했기에 Customer타입의 calcPrice메소드를 오버라이드해서 사용한것입니다.

VIP고객에게 일반고객 할인정책을 부여해서는 안되겠죠

따라서 범용성의 문제가 아니라고 생각됩니당.

이클립스 활성화가 안되는부분이있어요ㅜㅜ

0

435

1

책에 자료실

0

498

1

StudentID

0

561

1

인터페이스와 가상 메서드

0

357

1

11분쯤 price, int price 질문

0

353

1

For문 (중첩된 반복문) 구구단 문의 드립니다.

0

791

1

반복문 별 출력 연습문제

0

395

1

비트 연산자 질문입니다.

1

375

1

Scheduler scheduler = null 굳이 하는 이유가 있나요

1

336

0

Class간의 연결

1

297

1

선생님 스킬

0

400

1

초기화 에러!!!

0

286

1

선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ

2

303

0

출력

2

233

0

Main 함수 저번 강의 거가 나와요

0

319

1

결과값오류

1

226

0

printIn 함수 질문

0

455

1

24분 57초에 질문 있습니다!!

0

364

1

1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?

0

253

1

메서드와 생성자

0

398

2

참조형 데이터 타입은 클래스 이름과 같아야 하나요?

0

287

1

반환값은 정수 밖에 안되나요?

0

274

1

9분33초 설명!!부탁 드립니다!

0

300

1

48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?

0

298

1