Skip to content

Commit

Permalink
docs: update contents
Browse files Browse the repository at this point in the history
  • Loading branch information
dejavuhyo committed Sep 25, 2024
1 parent 0b72fb1 commit cfdcfd5
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions _posts/java/2022-08-24-java-final.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ tags: [java-final, final, final-classes, final-methods, final-variables, 자바-
상속을 통해 기존 코드를 재사용할 수 있지만 때때로 다양한 이유로 확장성에 대한 제한을 설정 해야한다. final 키워드를 사용하면 가능하다.

## 2. Final Classes
final로 표시된 수업은 연장할 수 없다. Java 핵심 라이브러리의 코드를 보면 거기에서 많은 final 클래스를 찾을 수 있다. 한 가지 예는 String 클래스이다.
final로 표시된 수업은 확장할 수 없다. Java 코어 라이브러리의 코드를 보면 거기에 많은 final 클래스가 있다. 한 가지 예는 String 클래스이다.

String 클래스를 확장하고 해당 메서드를 재정의하고 모든 String 인스턴스를 특정 String 하위 클래스의 인스턴스로 대체 할 수 있는 상황을 고려한다.
String 클래스를 확장하고 해당 메서드를 재정의하고 모든 String 인스턴스를 특정 String 하위 클래스의 인스턴스로 대체 할 수 있는 상황이 있다.

그러면 String 개체에 대한 작업 결과를 예측할 수 없게 된다. 그리고 String 클래스가 모든 곳에서 사용된다는 점을 감안하면 받아들일 수 없다. 이것이 String 클래스가 final로 표시되는 이유 이다.
그러면 String 개체에 대한 연산 결과를 예측할 수 없게 된다. 그리고 String 클래스가 모든 곳에서 사용된다는 점을 감안하면 받아들일 수 없다. 그래서 String 클래스는 final 로 표시된다.

final 클래스에서 상속을 시도 하면 컴파일러 오류가 발생한다. 이를 보여주기 위해 final 클래스인 Cat을 생성한다.
final 클래스에서 상속을 시도하면 컴파일러 오류가 발생한다. 이를 보여주기 위해 final 클래스인 Cat을 생성한다.

```java
public final class Cat {
Expand Down Expand Up @@ -49,7 +49,7 @@ cat.setWeight(1);
assertEquals(1, cat.getWeight());
```

그것을 연장할 수 없다.
그것을 확장할 수 없다.

좋은 디자인의 규칙을 엄격하게 따른다면 클래스를 신중하게 만들고 문서화하거나 안전상의 이유로 final로 선언해야 한다. 그러나 final 클래스를 생성할 때는 주의해야 한다.

Expand Down

0 comments on commit cfdcfd5

Please sign in to comment.