본문 바로가기
Language/Java

[자바 기본 개념] 상속 / 상속특징/ 타입변환

by 나비와꽃기린 2016. 6. 22.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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로 레퍼런스가 가리키는 객체의 진짜 타입을 식별함