- 다형성의 원리
- 상속하지 않은 클래스는 Object 클래스를 자동상속
- java.base > java.lang > Object
- toString() : 패키지+클래스@인스턴스id 반환
- equals() : 현재 객체와 인자로 전달된 객체가 같은지 판단(인스턴스 주소 비교)
- 다형성의 필요성
- 메서드 : 하나의 메서드 선언으로 다양한 타입의 인자를 받아 처리하기 위해
- 배열 : 여러 참조변수들을 하나로 묶어서 사용할때
- 다형성의 활용
- instanceof 연산 : 참조변수 instanceof 객체타입
- 타입변경
- 매개변수 타입을 부모타입으로 선언
- instaceof로 타입검사
- 타입변경 후 차별작업
- 내부 클래스
- 특정 클래스에서만 사용할때 사용
- 종류
- 인스턴스 멤버 클래스
- 자신이 속한 외부 클래스의 인스턴스 접근가능, 정적 필드 메서드 선언불가
- 정적 멤버 클래스
- 외부클래스.정적멤버내부클래스.멤버로 접근가능
- 로컬 클래스
- 클래스 메소드 내에서 생성, 메서드 내에서만 사용하므로 접근제한자 지정할수없고 static 선언불가
- 인스턴스 멤버 클래스
- 익명 클래스
- 일회용 클래스
- 선언방법
- 인터페이스명 참조변수명 = new 인터페이스명(){인터페이스 메서드 오버라이딩}
- 열거 클래스 enum
- name, toString, ordinal, compareTO, valueOf, values