강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của n010667560341590
n010667560341590

câu hỏi đã được viết

Làm đi! Giới thiệu lập trình Java cùng cô giáo Eunjong

Ghi đè và đa hình (3)

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

Viết

·

236

0

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

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

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

감사합니다.

업캐스팅java

Câu trả lời 2

2

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

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

타입을

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

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

0

n010667560341590님의 프로필 이미지
n010667560341590
Người đặt câu hỏi

답변 감사합니다!

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

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

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

일반 고객도있어야하고

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

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

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

두개의 타입으로 나눈거고

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

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

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

Hình ảnh hồ sơ của n010667560341590
n010667560341590

câu hỏi đã được viết

Đặt câu hỏi