1) 개념 : 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리
- 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질
- 참조변수의 타입을 자신 또는 상속받는 상위 타입으로 선언
2) 원리
- 다형성이 가능한 이유는 객체 생성시 실제 상속받는 객체가 메모리에 저장되기 때문
- Object 클래스 : 모든 JAVA의 루트클래스, 자바의 모든 참조변수는 object타입으로 선언가능 개념1, 개념2
- 인스턴스 생성 : 메모리에 만들어져 있음 개념1, 예제
3) 필요성
- 다형성을 적용하여 매개변수 타입을 선언한 메소드는 자신뿐아니라 모든 하위객체를 인자로 받아 실행할 수
있기 때문에 하나의 메소드로 구현이 가능하다.
- 배열 예제
- 타입변경 개념
1) 개념 : 클래스 선언시 멤버로서 변수, 메소드 뿐만 아니라 클래스를 정의하는 것
- 구분 : outer class, inner class
- 내부클래스의 파일명은 $가 중간에 붙음.
2) 활용
- 내부클래스 호출 개념1
- 종류 : 일반클래스(인스턴스 클래스), Static 클래스, 메소드 안쪽에 쓰는 로컬 클래스(local class)
*인스턴스 클래스는 static으로 선언된 내부class로 외부class 생성 없이 "외부class.내부class.메소드()" 형태로 사용
*로컬 클래스는 메소드 안에서 선언된 클래스로 메소드 내부에서만 사용
3) 익명클래스 개념1
- 지역클래스와 비슷하지만 이름없는 클래스 활용
'개발 > JAVA' 카테고리의 다른 글
4. 라이브러리 활용 (2) Collection API - List, Set, Map (0) | 2022.06.25 |
---|---|
4. 라이브러리 활용 (1) API 활용 (0) | 2022.06.24 |
3. 언어특성활용 (2) 상속, 추상화, 인터페이스 (0) | 2022.06.19 |
3. 언어특성활용 (1) 객체 지향 구현 (Instance, Constructor) (0) | 2022.06.19 |
2. 기본문법 (4) 객체지향 개요 (0) | 2022.06.13 |