본문 바로가기

객체지향

(2)
다형성 자세히 이해하기2 지난 다형성 포스팅에 이은 두번재 다형성 포스팅입니다.오늘 살펴볼 내용은 부모 자식 사이의 캐스팅과 프로모션입니다. 지난 포스팅보다 이번에는 좀 더 자세하게 들어가보록 하겠습니다. 특히 이번에는 오버라이딩 된 메서드가 있는 자식 클래스를 캐스팅하는 것입니다.그럼 설명에 앞서, 부모 자식 클래스 및 메인 프로그램을 준비해 보도록 하죠. 1. 부모 클래스 2. 자식 클래스 주석에 나와 있는 것과 같이, show 메서드와 speed 메서드는 부모 클래스 Car에 있는 메서드를 오버라이딩 한 것임을 알 수 있습니다. 자식 클래스에서 새로 만든 것은 works 메서드 밖에 없죠. 3. 메인 프로그램 먼저 car5는 부모 타입의 자식 객체로 생성되었습니다. 즉 레퍼런스 다형성이 발생한 것이죠. 다시 말하면, car..
다형성 자세히 이해하기1 * 부모 자식 사이의 캐스팅과 프로모션을 알아보자. 1. 부모 클래스 2. 자식 클래스 3. 메인 메서드(다형성 발생) ⓐ 레퍼런스 다형성 8 라인에서 레퍼런스 다형성이 발생한 것을 확인할 수 있다. 레퍼런스 다형성이란 부모 클래스로 자식의 객체를 생성할 때 발생한다. 이렇게 생성된 객체는 라인 19에서처럼 자식의 메서드를 사용할 수 없다. ⓑ 클래스 캐스팅19 라인의 car2.move()는 사용할 수 없다. 왜냐하면, move() 메서드는 Car 클래스에는 없는 내용이기 때문이다. move() 메서드를 호출할 수 있는 방법은 없을까? 20 라인에서 그 방법을 보여주고 있다. car2의 설계도를 버스 타입으로 바꿔주면, 즉 부모 객체를 자식 타입으로 캐스팅 하는 것이다. ⓒ 아규먼트 다형성23라인에서는 ..