다형성
다형성
다형성은 조상 타입 참조변수가 자식 객체를 다룰 수 있게 한다. 이를 통해 사용할 수 있는 멤버 갯수를 조절
한다.
조상 클래스가 5개의 멤버를 가지고 자식 클래스가 7개(상속받은 멤버 5개 + 자신의 멤버 2개)를 가진다면,
조상타입의 참조변수를 자식 객체를 참조하면 멤버 5개를 사용할 수 있다. 그러나, 자식타입의 참조 변수가 조상 객체를 참조하면 7개의 멤버가 필요한데 조상 객체는 5개만 있으니 이는 불가능하다.
5개 기능의 리모콘(조상타입 참조변수) = 7개 기능 물건(자식 객체)
(가능)
7개 기능의 리모콘(자식타입 참조변수) != 5개 기능 물건(조상 객체)
(불가능)
객체의 멤버갯수
(기능)가 항상참조변수의 타입 멤버갯수
(리모콘의 버튼 수)보다 같거나 많아야한다.
참조변수의 형변환
참조변수가 가르키는 인스턴스의 타입의 종류
가 중요하다.상속 관계
의 타입간에만 형변환이 가능하다.
형변환 순서
- instanceof 연산자로 형변환이 가능한지 확인
- 형변환
매개변수의 다형성
참조형 매개변수는 자신과 같거나 자손타입
의 객체를 넘겨준다.이를 통해 오버로딩해야할 메소드의 수를 줄여준다.
1
2
3
4
5
6
7
8
9
10
11
12
Class A{}
Class B extends A{}
Class C extends A{} // 클래스 간의 관계 표시
// 매개변수의 다형성이 없는 경우
// 매개변수 타입을 바꾸는 오버로딩 많이 해야함
void method(A a){}
void method(B b){}
void method(C c){}
// 매개변수의 다형성이 있는 경우
void method(A a){} //A,B,C모두 사용 가능
하나의 배열에 여러 객체 넣기
조상 타입의 배열 안에 자손 타입의 여러 객체를 넣을 수 있다.
1
2
3
A[] arr = new A[2];
A[0] = new B();
A[1] = new C();
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.