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 |
댓글