상속
- A extends B
- 부모 클래스의 public, protected로 선언되어 있는 변수, 메소드 사용 가능
- 다른 패키지에 선언된 부모 클래스의 접근 제어자가 없거나 private으로 선언된 것들은 사용 불가
- 자식 클래스의 생성자가 호출되면 자동으로 부모 클래스의 매개 변수 없는 생성자가 실행된다.
- 부모 클래스에 매개 변수가 있는 생성자만 있을 수 없다.
- (매개 변수가 있는 생성자가 있을 경우 기본 생성자는 자동으로 만들어지지 않기 때문)
- 매개 변수가 있는 생성자만 있을 때 해결법
- 기본 생성자 만들기
- 자식 클래스에서 super로 생성자 지정 ( super(매개변수) )
- 다중 상속 불가
메소드 Overriding
- 자식 클래스에서 부모 클래스에 선언되어 있는 메소드를 재정의하여 사용
- 메소드 시그니처가 같아야 함.
- 접근 제어자의 경우 부모 클래스의 것보다 접근 권한이 확장되는 경우 바뀔 수 있다.
형 변환
- 참조 자료형도 형 변환 가능
- 자식 > 부모로 형 변환은 자동으로 됨
- 부모 > 자식 형 변환의 경우 명시적으로 타입을 지정해 주어야 하며, 부모 타입의 실제 객체는 자식 타입이어야 한다.
- 타입 구별
- 객체 instanceof 클래스(타입)
- instanceof로 타입 점검 시에는 가장 하위 자식 타입부터 확인해야 제대로 된 검증이 가능
다형성
- 형 변환을 하더라도 실제 호출되는 것은 원래 객체에 있는 메소드가 호출된다.
'Java' 카테고리의 다른 글
JVM Anatomy 101 정리 (1) | 2024.04.07 |
---|---|
자바의 신 개정판 Vol.1 - 9장 (0) | 2022.11.25 |
자바의 신 개정판 Vol.1 - 4장 (0) | 2022.10.19 |