19. 상속

Lee kyu min·2024년 1월 30일

Java study

목록 보기
18/41

상속

  • 기존 클래스(부모 클래스, 슈퍼 클래스)의 기능(메서드 변수 등의 멤버요소)을 새 클래스(자식 클래스, 서브 클래스)에 사용하도록 함
  • 자식과 부모 클래스의 관계를 Is-A 관계라고 한다.
  • 하나의 부모 클래스(parent class)는 여러개의 자식 클래스(children)을 가질 수 있다.
  • 하나의 클래스는 여러개의 클래스로부터 상속을 받을수는 없다.
  • 부모 클래스에서 자식 클래스에 상속 문법
class 자식클래스 extends 부모클래스 {
	//멤버 요소
}

super

  • 자식클래스가 부모클래스의 프로퍼티와 동일한 이름을 갖고 있을 때 사용,
    자식 클래스의 메서드에서 부모 클래스의 변수와 메서드에 접근할 수 있는 명령어.
  • 부모 클래스의 클래스 멤버 앞에 붙여서 사용

super()

  • 부모 클래스의 생성자를 호출하는 명령어
    자식 클래스 생성자 첫 행에 사용해야 한다.
    ( super()와 this()는 생성자 첫 행에 사용해야 하므로 함께 사용 불가능하다. )
  • 바로 윗단계의 부모클래스 뿐아니라 부모의 부모 또 그 부모의 부모 클래스의 생성자를 모두 호출
    • 자식 클래스의 생성자가 부모 클래스의 생성자를 명시적으로 호출하지지 않으면 자바 컴파일러는 부모 클래스의 매개변수가 없는 생성자를 자동을 호출한다.
      (부모클래스에서 생성자가 오버로딩되면 자동으로 추가되지 않음)

메서드 오버로딩(Overloading)

  • 메서드의 이름은 같고 매개변수의 유형과 개수가 다르도록 하는 것.
  • 리턴값만을 다르게 갖는 오버로딩은 작성 할 수 없다.

메서드 오버라이딩(overriding)

  • 부모 클래스의 메서드를 자식 클래스의 메소드로 정의하는 것.
  • 오버라이딩의 조건
    • 자손 클래스에서 오버라딩하는 메서드는 조상 클래스의 메서드와
      이름이 같아야 함
      매개변수가 같아야 함
      반환타입이 같아야 함
  • 예제

final 클래스

  • 클래스 선언시 final 키워드를 class 앞에 붙이면 상속 불가능한 클래스가 된다.

final 메서드

  • 메서드 선언시 final 키워드를 붙이면 오버라이딩 불가능한 메서드가 된다.

0개의 댓글