본문 바로가기
Java

JAVA Extends

by titlejjk 2023. 5. 2.

Extends란 자바에서 자식 클래스가 부모 클래스의 필드와 메서드를 물려 받는 것을 의미한다. 이때, 자식 클래스는 부모 클래스를 상속받기 위해 extends 예약어를 사용해야 한다.

예를 들어

부모 클래스 👉 Animal Class

이를 상속받는 자식 클래스 👉 Dog Class

이렇게 부모 클래스와 자식 클래스가 있다면 Dog 클래스는 Animal 클래스를 상속받기 위해 아래와 같이 작성하면 된다.

public class Dog extends Animal {
    // Dog Class에 클래스 명이 Animal Class인 부모 클래스를 상속받음
}

위와 같이 작성하면, Dog 클래스는 Animal 클래스의 필드와 메서드를 사용할 수 있다. 또한, 하나의 부모 클래스는 여러개의 자식 클래스를 가질 수 있지만, 반대로 자식 클래스는 여러 부모 클래스(다중상속)를 상속받을 수 없다.

또한 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드, 그리고 부모 클래스와 자식 클래스가 다른 패키지에 존재하며, defalut 접근 제한을 갖는 필드와 메소드는 상속이 제한 된다.

 

extends 를 사용하게되면 다음와 같은 장점과 단점이 있다.

먼저 장점으로는

  • 코드 중복 감소 ( 이미 개발된 클래스를 재사용하여 새로운 클래스를 만들수 있다.)
  • 유지 보수 시간 감소(부모 클래스의 수정으로 상속받은 자식 클래스들 또한 그 영향을 받는다)

단점으로는

  • 클래스 간의 결합도가 높아지고, 코드의 복잡도 증가
  • 상속 구조가 복잡해질수록 디버깅이 어려움

등이 있다.

'Java' 카테고리의 다른 글

JAVA 추상클래스와 인터페이스의 차이  (0) 2023.05.03
JAVA Inner class  (0) 2023.05.03
JAVA Abstract  (0) 2023.05.02
JAVA 다형성  (0) 2023.05.02
JAVA This  (0) 2023.05.01

댓글