final Class
final 클래스는 자바에서 클래스의 상속과 오버라이딩을 제한하여
더욱 안정적인 코드를 작성하는 데 도움이 되는 특별한 클래스입니다.
1. final class란?
final 클래스는 상속을 금지하는 클래스로, 한 번 정의된 후에는 다른 클래스가 이를 상속받을 수 없습니다.
즉, final 클래스로 선언된 클래스는 최종적이고 수정할 수 없는 클래스가 되며, 자식 클래스를 가질 수 없습니다.
final 클래스는 주로 성격이 불변하거나 확장이 불가능한 클래스에 사용됩니다.
예를 들어, 자바의 `String` 클래스는 final 클래스로 선언되어 있어 다른 클래스에서 이를 상속받을 수 없고,
수정할 수 없는 불변의 문자열 클래스로 사용됩니다.
2. final class의 특징
상속금지
final 클래스로 선언된 클래스는 더 이상 다른 클래스에서 상속받을 수 없습니다.
이로 인해 라이브러리나 프레임워크에서 안정성을 보장하고, 오류를 방지하는 데 도움이 됩니다.
오버라이딩 제한
final 클래스에 속하는 메서드 역시 오버라이딩(재정의)을 금지합니다.
즉, final 클래스의 메서드는 하위 클래스에서 재정의할 수 없습니다.
이는 클래스의 동작을 보장하고, 의도하지 않은 동작을 방지하는 데 도움이 됩니다.
상수와 함께 사용
final 클래스는 상수와 함께 사용되기도 합니다.
예를 들어, 상수를 정의하는 클래스는 더 이상 확장되거나 수정되지 않도록 final 클래스로 선언하여 상수의 불변성을 보장합니다.
3. final class의 예제
final class ImmutableClass {
private final int value;
public ImmutableClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
위의 예제는 final 클래스인 `ImmutableClass`를 보여줍니다.
이 클래스는 생성자를 통해 값을 초기화하고, 값을 읽어오는 `getValue()` 메서드만 제공합니다.
이 클래스는 불변성을 갖기 때문에, 생성 후에는 내부의 값이 변경되지 않으며,
다른 클래스에서도 이를 상속받거나 오버라이딩할 수 없습니다.
4. final class의 활용
final 클래스는 주로 안정성과 보안성이 필요한 경우에 활용됩니다.
다음과 같은 경우에 final 클래스를 사용하는 것이 좋습니다.
- 불변 객체(Immutable Object)를 만들 때
- 객체의 상태를 변경하지 않는 불변성을 유지하려면 final 클래스로 선언하여 클래스 자체의 수정을 방지할 수 있습니다.
- 보안성과 안정성이 필요한 클래스
- final 클래스를 사용하여 클래스의 상속과 오버라이딩을 막으면, 의도하지 않은 동작을 방지하고 안정적인 코드를 작성할 수 있습니다.
- 클래스의 최종적인 선언
- 클래스의 구조와 동작이 최종적으로 정해졌을 때, final 클래스로 선언하여 더 이상의 수정을 방지합니다.
final 클래스는 자바에서 클래스의 상속과 오버라이딩을 제한하는 특별한 클래스입니다.
final 클래스로 선언된 클래스는 더 이상 상속받을 수 없으며, 메서드의 오버라이딩도 제한됩니다.
이를 활용하여 불변 객체를 구현하거나, 안정성과 보안성을 보장하는 코드를 작성하는 데 도움이 됩니다
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
'Java' 카테고리의 다른 글
Java - 24. 자바의 객체(Object) (0) | 2023.07.26 |
---|---|
Java - 23. 자바의 멤버 변수와 지역 변수의 차이 (0) | 2023.07.25 |
Java - 21. 자바의 Class Access Modifier (접근 수식어) (0) | 2023.07.23 |
Java - 20. 자바의 패키지(Package) (0) | 2023.07.22 |
Java - 19. 자바의 Getter, Setter 메서드 (0) | 2023.07.21 |