1. 상속
1.1 상속이란?
-상위 클래스의 특성 (필드, 메소드)을 하위 클래스에 물려주는 것
-슈퍼 클래스에서 하위 클래스로 갈수록 구체적
1.2 슈퍼 클래스
-서브 클래스의 특성을 물려 받는 하위 클래스,
슈퍼 클래스에 자신만의 필드 및 메소드를 추가
à 오버라이딩
1.3 자바 상속의 특징
-다중 상속 지원 안함
-상속의 횟수에 제한 없음
-최상위 조상 클래스는 Object 클래스 (모든 클래스 자동 Object 클래스 상속)
1.4 서브 클래스의 객체와 멤버 접근
-서브 클래스의 객체에는 슈퍼 클래스의 멤버가 포함된다.
-하지만 슈퍼클래스의 private 멤버는 상속되지 않기 때문에 서브클래스에서 직접 접근이 불가하다.
-슈퍼 클래스의 private 멤버는 슈퍼 클래스의 메소드를 통해 접근한다.
1.5 상속과 접근 지정자
-자바의 접근 지정자 4개 (public, protected, default, private)
-슈퍼 클래스의 private 멤버는 모든 클래스에 접근 안됨
-슈퍼 클래스의 protected 멤버는 같은 패키지 내의 모든 클래스는 접근 가능
|
default |
Private |
Protected |
public |
같은 패키지의 클래스 |
O |
X |
O |
O |
같은 패키지의 서브 클래스 |
O |
X |
O |
O |
다른 패키지의 클래스 |
X |
X |
X |
O |
다른 패키지의 서브 클래스 |
X |
X |
O |
O |
1.6 서브클래스와 슈퍼클래스의 생성자 호출 및 실행 관계
-슈퍼클래스 생성자와 서브 클래스 생성자 모두 실행됨
-호출 순서 à 서브클래스의 생성자가 먼저 호출되고, 서브 클래스의 생성자가 실행하기 전 슈퍼 클래스의
생성자 호출
-실행 순서 à 슈퍼 클래스의 생성자가 먼저 실행된 후 서브 클래스의 생성자 실행
1.7 객체의 타입 변한
1. 업캐스팅
-프로그램에서 이루어지는 자동 타입 변환
-서브 클래스의 레퍼런스 값을 슈퍼 클래스 레퍼런스에 대입
-슈퍼 클래스 레퍼런스가 서브 클래스 객체를 가리키게 되는 현상
2. 다운캐스팅
-업캐스팅된 것을 다시 원래대로 되돌리는 것
-명시적으로 지정
3. instanceof 연산자
- 업캐스팅된 레퍼런스로 객체의 진짜 타입을 구분하기 어려움
- 슈퍼 클래스는 여러 서브 클래스에 상속되기 때문
- 따라서 instanceof로 레퍼런스가 가리키는 객체의 진짜 타입을 식별함
'Language > Java' 카테고리의 다른 글
[자바 기본 개념] 추상메소드 / 인터페이스 (0) | 2016.06.22 |
---|---|
[자바 기본 개념] 오버라이딩/오버로딩 (0) | 2016.06.22 |
[자바 기본 개념] 절차지향 vs 객체지향 (0) | 2016.06.22 |
[자바 기본 개념] 예외 처리/ 예외처리 종류 (0) | 2016.06.22 |
[자바 기본 개념] 배열이란 (0) | 2016.06.22 |