자동타입변환과 강제타입변환

dykwon·2023년 11월 7일
0

자동타입변환

자식클래스가 부모클래스에 할당되는 경우, 자식 클래스는 자동으로 부모클래스가 된다.

Parent parent = new Parent();
Child child = new Child();

parent = child; // 자동타입변환
  • 다형성 : 이때, 만일 자식이 Parent의 Method를 Override 했다면, parent의 method는 child의 Overriding된 Method를 사용하게 된다.
  • 또한 parent는 더 이상 child에만 구현된 field와 method에 접근할 수 없다.

강제타입변환

부모클래스가 자식클래스에 할당되는 경우, 강제 타입 변환을 제공해야한다.

Parent parent = new Child();
Child child = (Child) parent; // 강제타입변환 성공(O)

단, 이때 부모클래스는 자식타입 인스턴스로 변환되어 있어야만 한다.

Parent parent = new Parent();
Child child = (Child) parent; // 강제타입변환 실패(X)

자동타입변환과 상속 그리고 다형성을 활용하면 객체간 Overriding을 통해, 코드의 중복을 제거하고 유지보수를 편리하게 할 수 있다.

이 개념은 Interface와 Interface를 구현한 객체간에도 적용될 수 있다.

profile
Programmer, who turns ideas into value

0개의 댓글