1. 다형성(polymorphism)
1) 사전적 : 여러 가지 형태를 취할수 있는 능력
2) 하나의 참조변수로 여러 타입의 객체를 참조할수 있는 것.
즉 조상의 참조변수로 자손타입의 객체를 다룰 수 있는 것.
=> 원래의 타입은 유지됨.
하나의 코드로 여러 자료형으로 구현되어 실행되는 것.
같은 코드로 여러 다른 실행 결과가 나옴.
3) 정보은닉, 상속과 더불어 OOP의 가장 큰 특징 중 하나임.
4) 다형성을 잘 활용하면 유연하고 확장성 있고, 유지보수가 편리한 프로그램을 만들수 있음.
2. 다형성으로 인한 형변환(캐스팅)
1) 형변환의 전제 조건 -- 상속, 구현관계에 있는 것만 객체타입 변환이 가능.
2) Up-casting : 자손타입에서 조상타입으로 형변환, 형변환 생략가능. 묵시적
==> 조작 멤버변수가 줄어듦.
3) Down-casting :
- 조상타입 --> 자손타입으로 형변환, 형변환 생략불가. 명시적
==> 조작 멤버변수가 많아짐.
- 업캐스팅된 클래스를 다시 원래의 타입으로 형변환.
4) instanceof 연산자
- 인스턴스의 형 체크
- 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용함.
- instanceof의 연산결과가 true면, 해당 타입으로 형변환이 가능함.
3. 매개변수의 다형성
1) 참조타입 매개변수는 메서드 호출 시, 자신과 같은 타입이거나 또는 자손타입의 주소를
즉 인스턴스를 넘겨주도록 함.
4. 여러 종류의 객체를 배열로 다루기
1) 조상타입의 배열에는 조상 뿐만 아니라, 자손들의 객체도 담을수 있음.
'Web > Java' 카테고리의 다른 글
Java(16) - Object 클래스 (0) | 2022.01.28 |
---|---|
Java(15) - 추상클래스와 인터페이스 (0) | 2022.01.28 |
Java(13) - review2 (0) | 2022.01.28 |
Java(12) - 상속과 오버라이딩 (0) | 2022.01.28 |
Java(11) - 컬렉션프레임워크 (0) | 2022.01.28 |
댓글