언어/JAVA

final

nakgopsae 2024. 6. 26. 13:01

 

클래스: final class MyClass와 같이 클래스를 final로 선언하면, 이 클래스는 상속될 수 없습니다. 즉, 다른 클래스에서 이 클래스를 확장할 수 없습니다.

 

메서드: final void myMethod()와 같이 메서드를 final로 선언하면, 이 메서드는 하위 클래스에서 오버라이드할 수 없습니다. 즉, 메서드의 구현이 변경되지 않도록 고정됩니다.

 

변수: final int myVariable = 10;과 같이 변수를 final로 선언하면, 이 변수는 한 번 초기화된 후에는 변경할 수 없습니다. 이는 변수의 값이 상수화되어 다시 할당할 수 없도록 만듭니다.


번외

코틀린에서의 final

코틀린에서는 final 키워드의 사용 방법이 약간 다릅니다:

 

클래스: 코틀린에서는 기본적으로 모든 클래스가 기본적으로 final입니다. 클래스를 상속 가능하게 하려면 open 키워드를 사용하여 명시적으로 클래스를 열어줘야 합니다. 예를 들어, open class MyClass와 같이 클래스를 선언하면, 이 클래스를 다른 클래스에서 상속할 수 있습니다.

 

함수: 코틀린에서는 함수를 기본적으로 상속할 수 없게 하기 위해 final 키워드를 사용할 필요가 없습니다. 오버라이드를 허용하려면 open 키워드를 사용하여 함수를 선언해야 합니다.

 

변수: 코틀린에서는 val 키워드를 사용하여 변수를 선언할 때 불변성을 지정할 수 있습니다. val myVariable: Int = 10과 같이 선언하면, 변수는 한 번 초기화된 후에는 변경할 수 없습니다.

자바스크립트에서의 final

자바스크립트는 final 키워드를 지원하지 않습니다. 변수를 const로 선언하여 한 번 초기화된 후에는 재할당할 수 없는 상수로 만들 수 있습니다. 예를 들어, const myConstant = 10;과 같이 선언하면 myConstant 변수는 상수로 취급되어 다시 할당할 수 없습니다.

결론

각 언어에서 final 키워드는 서로 다른 의미와 사용 방식을 가지고 있습니다. 자바에서는 클래스, 메서드, 변수에 대해 final을 사용하여 상속 불가능성과 불변성을 보장하고, 코틀린에서는 클래스와 메서드에 대해 상속 가능성을 명시적으로 허용하거나 제한하며, 변수에 대해 val을 사용하여 불변성을 지정합니다. 자바스크립트에서는 const를 사용하여 상수를 정의합니다.