class 자동차 {void 가속(){} void 감속(){}}
class 스파크 extends 자동차 {void 좁은곳주차(){}}
class 페라리 extends 자동차 {void 뚜껑오픈(){}}
자동차 리모콘 버튼 2개
스파크 리모콘 버튼 3개
페라리 리모콘 버튼 3개
자동차 a자동차 = new 페라리();
a자동차에는 자동차 리모콘만 들어감
페라리의 리모콘 -> 자동차 리모콘으로 바꿔야함
=> 뚜껑오픈 버튼 사라짐.
**
자바는 버튼을 제거하는 것은 불편해지지만, 안전하다고 판단한다.
자바는 버튼이 추가하는 것은 편리해지지만, 위험하다고 판단한다.
=> 리모콘이 하위(구체적)타입으로 변하는 경우는 버튼이 추가될 가능성만 존재한다.
이럴때는 수동형변환 필수.