Java

Java : 상속(Inheritance)

운덩하는 개발자 2022. 8. 8.
반응형

가끔식 헷갈리는걸 보니 대충의 감은 잡았지만 정확하게 이해하지는 못한거 같다.

이번 기회에 내 생각을 쓰면서 확실하게 정리해야겠다

 

상속이란?

 현실에서 부모가 자식에게 상속을 해주는 것과 비슷하지만, 여기서는 자식이 상속받고 싶은 부모를 선택하여 상속받는       다.

=> 상속을 받게되면 부모의 필드, 메서드를 모두 물려받게 된다. 단, 접근제어자가 private을 갖는 필드나 메소드는 상속이 불가하고, 패키지가 다를 경우 접근제어자가 default(해당 패키지 내에서만 사용가능)인 경우도 상속이 불가하다.

 

상속을 왜 사용하는가?

 => 코드의 중복을 줄이고, 유지보수가 편리하며, 통일성 있고, 다형성을 구현 가능하기에 사용

 

상속의 방법

 상속받는 자식 클래스명 뒤에 extends나 implements 키워드를 사용하고 상속받을 부모클래스 명을 작성

class 

 

이 메소드 OR 변수를 '구현'하는가 그대로 '사용'하는가에 따라서 상속의 형태가 갈리게 된다.

  1. extends
    • 부모에서 선언을 모두하며 자식은 메소드,변수를 그대로 사용할 수 있음
    • Override 필요 x
  2. implements (interface 구현)
    • 부모 객체는 선언만 하며 정의(내용)는 자식에서 오버라이딩(재정의) 해서 사용해야함
    • Override 필요
  3. abstract
    • extends와 interface 혼합. extends하되 몇 개는 추상 메소드로 구현되어 있음

                           여기서 의문 어차피 재정의하고 다시 써야되면 상속이라는 개념이 맞는 의미인가?

                             => Javac#의 인터페이스 상속은 계약 및 분류 의 의미가 강하다로 생각하자

 

 

 

 

 

반응형

'Java' 카테고리의 다른 글

Static, Final, SingleTon Pattern  (0) 2022.09.01

댓글