자식클래스가 부모클래스에 할당되는 경우, 자식 클래스는 자동으로 부모클래스가 된다.
Parent parent = new Parent();
Child child = new Child();
parent = child; // 자동타입변환
부모클래스가 자식클래스에 할당되는 경우, 강제 타입 변환을 제공해야한다.
Parent parent = new Child();
Child child = (Child) parent; // 강제타입변환 성공(O)
단, 이때 부모클래스는 자식타입 인스턴스로 변환되어 있어야만 한다.
Parent parent = new Parent();
Child child = (Child) parent; // 강제타입변환 실패(X)
자동타입변환과 상속 그리고 다형성을 활용하면 객체간 Overriding을 통해, 코드의 중복을 제거하고 유지보수를 편리하게 할 수 있다.
이 개념은 Interface와 Interface를 구현한 객체간에도 적용될 수 있다.