본문 바로가기
JAVA/Java

상속

by KkingKkang 2023. 3. 14.

클래스 상속

  • 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함
  • 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를구현해야 할 때 기존 클래스를 상속
  • class B extends A { }
  • extends키워드 뒤에는 단 하나의 클래스만 올 수 있다!

자바는 단일 상속(single inheritance) 만을 지원함

 

상속을 구현하는 경우

  • 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐
  • 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐
  • 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미

사람 < 포유류

class Mammal{

}

class Human extends Mammal{

}

 

super 키워드

  • 하위클래스에서 가지는 상위 클래스에 대한 참조 값
  • super()는 상위 클래스의 기본 생성자를 호출함
  • 하위 클래스에서 명시적으로 상위 클래스의 생성사를 호출하지 않으면 super()가 호출됨 (이때 반드시 상위 클래스의 기본 생성자가 존재해야 함)
  • super는 생성된 상위 클래스 인스턴스의 참조 값을 가지므로 super을 이용하여 상위 클래스의 메서드나 멤버 변수에 접근할 수 있음

 

하위 클래스에서 메서드 재정의하기 : 오버라이딩(overriding)

상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의할 수 있음

 

@overriding 애노테이션 (annotation)
 
애노테이션은 원래 주석이라는 의미
 
컴파일러에게 특별한 정보를 제공해주는 역할
(컴파일러 = 고급 언어로 쓰인 프로그램을 즉시 실행될 수 있는 형태의 프로그램으로 바꾸어 주는 번역 프로그램)
 
@override : 재정의된 메서드라는 정보 제공
 

 

 

 

반응형

댓글