다형성이란?
한 타입의 참조변수로 여러 타입의 객체를 참조하는 것을 말한다.
다형성이 가능한 경우
- 두 클래스가 서로 상속관계
- 조상타입의 참조변수로 자손타입의 인스턴스 참조 가능
- 자손타입의 참조변수로 조상타입의 인스턴스 참조 불가
ex) 조상클래스가 Animal / 자식클래스가 Dog 일 때
- Animal animal = new Animal();
- Animal animal = new Dog(); ( O ) Dog 인스턴스 중에서 Animal클래스의 멤버들만 사용 가능 >> 실제 인스턴스 타입으로 형변환하면 Dog인스턴스의 모든 멤버 사용 가능
- Dog dog = new Animal(); ( X ) 실제 인스턴스인 Animal의 멤버 개수보다 참조변수인 Dog가 사용가능한 멤버 개수가 더 많기 때문
형변환
- 서로 상속관계에 있는 클래스 사이에서만 가능
- 참조변수가 참조하는 실제 타입은 instanceof 연산자를 사용하며 boolean타입으로 true / false 로 형변환 가능여부 앎
다형성 활용
- 조상 클래스의 멤버만 사용 시 여러 자식클래스르를 메서드의 매개변수로 조상클래스로 받으면 하나의 메서드로 처리 가능
- 조상타입의 참조변수 배열을 사용하면 공통의 조상을 가진 서로 다른 종류의 객체 배열로 묶어서 사용 가능
참고 자료 출처 : 책 < 자바의 정석 >
'JAVA' 카테고리의 다른 글
예외처리 (0) | 2024.01.31 |
---|---|
인터페이스 (0) | 2024.01.28 |
탬플릿 메서드 패턴 & 팩토리 메서드패턴 (0) | 2024.01.24 |
메서드 동적 바인딩 (0) | 2024.01.19 |
참조형식과 호출되는 메소드 관계 (0) | 2024.01.18 |