EEALL@ONCE

☕ final 클래스 / 메소드 / 필드 본문

언어💻/자바☕

☕ final 클래스 / 메소드 / 필드

올엣원스 2023. 11. 14. 23:31
728x90

final 키워드는 Java에서 여러 곳에서 사용되는데, 주로 필드, 메서드, 클래스, 그리고 인스턴스에 적용됩니다. 여기서 각각의 사용법에 대해 설명하겠습니다.

1. **final 필드:**
   - 값 변경이 불가능합니다.
   - 선언 시 또는 생성자에서 초기화해야 합니다.


   public class Example {
       final int constantValue;

       public Example(int value) {
           constantValue = value; // 생성자에서 초기화
       }
   }


   ```

2. **final 메서드:**
   - 자식 클래스에서 오버라이드 불가능합니다.
   

   ```java
   public class Parent {
       final void finalMethod() {
           // final 메서드 구현
       }
   }

   public class Child extends Parent {
       // 컴파일 오류: final 메서드를 오버라이드 할 수 없음
       /*void finalMethod() {
           // 오버라이드 시도
       }*/
   }
   ```



3. **final 인스턴스:**
   - 다른 값을 넣는 것은 불가능하지만, 필드는 변경 가능합니다.

   ```java
   public class Example {
       final int constantValue = 10; // 값을 변경할 수 없음

       void modifyField() {
           // 컴파일 오류: final 필드 값을 변경할 수 없음
           // constantValue = 20;
       }
   }
   ```



4. **final 클래스:**
   - 하위 클래스를 만들 수 없습니다.

   ```java
   final class FinalClass {
       // final 클래스 내용
   }

   // 컴파일 오류: final 클래스를 상속할 수 없음
   /*public class ChildClass extends FinalClass {
       // 하위 클래스 생성 불가
   }*/
   ```




728x90