Gomdori

Java의 특성 및 각종 정보 -3 본문

코딩(Coding)

Java의 특성 및 각종 정보 -3

Ghomdori 2019. 9. 16. 10:24

상속(inheritance) : 객체와 객체를 연관시키고 계층구조를 만들어 코드를 재사용

- 부모클래스,상위클래스  => parent class, super class

- 자식클래스,하위클래스 => child class, sub class

- 오직 한 클래스만을 상속할 수 있다.

Object 클래스 = 최상위 클래스

 

상속 형식

class 클래스명 extends 상속클래스명

클래스명 => 하위 클래스

상속클래스명 => 상위 클래스

- 모든 클래스의 부모클래스 -> Object

- 상위 클래스의 접근지정자에 따라 접근이 제한

※ 접근지정자 : private,public,protected 등등..

 

<멤버상속> 접근가능도

  클래스 내부 하위 클래스 외부
Private O X X
Public O O O
Protected O O

같은 패키지클래스를 상속한 경우(O)

다른 패키지클래스를 상속한 경우(X)

friendly O

같은 패키지클래스를 상속한 경우(O)

다른 패키지클래스를 상속한 경우(X)

같은 패키지클래스를 상속한 경우(O)

다른 패키지클래스를 상속한 경우(X)

접근지정자
생략

 

오버라이딩(Overriding)

- 부모클래스의 메소드를 자식클래스에서 다시 재정의하는 것

※ 주의사항

1. 함수명이 같아야 한다.

2. 함수의 매개변수가 같아야 한다.

3. 리턴형이 같아야 한다.

 

final

(1) final이 클래스와 메소드에 붙는 경우

- 상속과 오버라이딩 불가

- 클래스와 메소드의 맨 앞쪽에 위치

 

(2) final이 변수에 사용되는 경우

static final int A = 10;    // 수정불가!!

 

상속관계에서 생성자의 호출 순서

(1) 상위 클래스 생성자에서 부터 하위클래스 생성자 호출

- 매개변수가 없으면 자동호출이 됨. 매개변수가 있으면 상위 생성자를 호출해줘야 한다.

(2) 생성자에 매개변수가 있는 경우 자동호출이 안된다. - > super 키워드 사용

 

super : 하위 클래스에섯 상위클래스를 참조하여 접근할 때 사용

 

형식

- super.멤버변수명

- super.메소드명(매개변수)

super 사용

(1) 하위클래스에서 상위클래스의 메소드나 변수를 호출할 때 사용

(2) 하위클래스에서 상위클래스의 생성자를 호출할 때 super(매개변수) 또는 super()와 같이 사용

※ 하위클래스의 생성자 맨 첫줄에 있어야한다.

 

참조변수를 이용한 형변환과 호출

- 캐스트 연산자 사용()

- 형변환 규칙

(1) 하위클래스에서 상위클래스로 형변환할 수 있으며, 접근지정자에 따라 접근이 결정된다.

(2) 생성된 하위클래스에서 상위클래스 형변환을 통해 하위클래스의 멤버에 접근할 수 있다.

(3) 상위클래스의 메소드가 하위클래스에 오버라이딩(재정의)된 메소드를 호출하면 하위클래스의 메소드가 실행

같은 이름의 메소드명을 오버라이딩 할 시 하위클래스가 호출된다.

Comments