상속

이재연·2020년 12월 25일
1

Java Basic

목록 보기
6/15

상속이란?

클래스가 가진 메서드와 필드를 사용하는 것이다. 상속을 받은 클래스(자식 클래스)는 상속을 준 클래스(부모 클래스)의 모든 메서드와 필드를 사용 할 수 있다.

상속 역시 접근 지시자의 영향을 받는다. public이 아닌 경우 자식 클래스에서 참조가 제한 될 수 있다.

자바 상속의 특징

계층적 상속 : 하나의 부모 클래스는 여러개의 자식 클래스를 가질 수 있다.

단일 상속 : 자식 클래스는 여러개의 부모 클래스를 가질 수 없다.

다중 레벨 상속 : 부모 클래스를 가진 자식 클래스를 상속 받을 수 있다.

super 키워드

부모 클래스(직계 부모 클래스)를 의미한다. super 키워드를 통해 부모 클래스의 인스턴스 변수, 메서드를 참조 할 수 있다.

this()와 같이 super()는 부모 클래스의 생성자를 의미한다. 생략할 경우 컴파일러가 파라미터 없는 기본 생성자를 자동으로 추가한다.

자식 클래스를 인스턴스화 하면 부모 클래스도 인스턴스화 된다.

메소드 오버라이딩

부모 클래스의 메서드를 재졍의 하는 것을 의미한다.

다이나믹 메소드 디스패치 (Dynamic Method Dispatch)

  • 디스패치

어떤 메서드를 호출할지를 결정하고 실행하는 과정이다.

  • 스태틱 메소드 디스패치

컴파일 시점에서 어떤 메서드를 실행할지 알고 있는 경우이다.

  • 다이나믹 메소드 디스패치

런타임 시점에서 실행할 메서드가 결정되는 경우이다.

추상 클래스

abstract 키워드가 붙은 클래스이며 하나 이상의 추상 메서드를 포함하고 있다.

인스턴스를 생성하지 못한다.

추상 메서드 : 구현이 되지 않은 메서드

final 키워드

재정의를 원하지 않을 때 사용한다.

클래스에 final 키워드가 있는 경우 : 상속을 하지 못한다.

메서드에 final 키워드가 있는 경우 : 오버라이딩을 하지 못한다.

변수에 final 키워드가 있는 경우 : 값을 변경할 수 없다.

Object 클래스

모든 클래스의 최상위에 있는 부모클래스이다. 클래스를 생성하게 되면 자동으로 Object 클래스를 상속받게 된다.

0개의 댓글