본문 바로가기
BackEnd/Java

상속 Inheritance

by roh.mantique 2021. 9. 22.

상속 Inheritance 

: 클래스가 다른 클래스를 상속받아서 사용하는 것을 말한다.

 

- 상속을 받아 새롭게 생성되는 클래스는 자식 클래스 (child class), 하위 클래스(sub class), 파생 클래스(deprived class).

- 상속을 해주는 클래스는 부모 클래스(parent class), 상위 클래스(super class), 기초 클래스(base class).

- 상속을 하는 이유는 이미 마련되어 있는 클래스와 그 클래스에서 사용되고 있는 특정 기능을 재사용하기 위함이다. 이전에 만든 클래스를 재사용해 코드의 효율성을 높일 수 있다. 

 

예컨데 동물에 대한 클래스가 있는데, 고양이에 대한 클래스를 만들고 싶다면 동물 클래스에서 상속받아 클래스를 재사용할 수 있다. 

 

상속의 특징

- 다중 상속은 불가능하다.

- 'extend' 키워드를 통해 상속한다. 

- 모든 클래스의 최상위 super class는 Object class다. 

- 부모 클래스의 private 접근 제한을 갖는 필드 및 메소드는 자식이 물려받을 수 없다.

- 부모와 자식 클래스가 서로 다른 패키지에 있다면, 부모의 default 접근 제한을 갖는 필드 및 메소드도 자식이 물려받을 수 없다. (default 접근 제한은 같은 패키지에 있는 클래스만 접근이 가능한 접근 제한자)

- 이 이외의 경우엔 모두 상속의 대상이 된다. 

메소드 오버라이딩 

부모 클래스에서 상속받은 특정 메소드를 자식 클래스에서 재정의해 사용하는 것을 의미한다. 부모 클래스와의 공통점을 유지하면서도 자식 클래스만의 고유한 기능을 추가하는 것이다. 

 

오버라이딩의 조건

- 메소드의 이름은 같지만 매개변수의 개수, 데이터 타입이 달라야 한다.

- 부모 클래스의 메소드보다 접근 제어를 더 강력히 할 수 없다.

 

 

 

'BackEnd > Java' 카테고리의 다른 글

컬렉션 Collection  (0) 2021.09.24
인터페이스 Interface  (0) 2021.09.22
OOP의 4대 요소  (0) 2021.09.22
클래스 구성요소  (0) 2021.09.22