개발관련/other

C #에서 Java의 final을 사용하는 방법

Rateye 2021. 12. 16. 09:41
728x90
반응형
질문 : C #에서 Java의 최종 결과는 무엇입니까?

C #에서 final 는 무엇입니까?

답변

final 키워드는 Java에서 여러 용도로 사용됩니다. 사용되는 컨텍스트에 따라 C # sealedreadonly 키워드에 모두 해당합니다.

Classes

서브 클래 싱을 방지하려면 (정의 된 클래스에서 상속) :

JAVA

public final class MyFinalClass {...}

C#

public sealed class MyFinalClass {...}

Methods

virtual 메서드 재정의를 방지합니다.

JAVA

public class MyClass
{
    public final void myFinalMethod() {...}
}

C#

public class MyClass : MyBaseClass
{
    public sealed override void MyFinalMethod() {...}
}

Joachim Sauer가 지적했듯이 여기에서 두 언어의 주목할만한 차이점은 Java가 기본적으로 모든 비 정적 메서드를 virtual 로 표시하는 반면 C #은이를 sealed 로 표시한다는 것입니다. 따라서 기본 클래스에서 virtual 으로 표시된 메서드를 더 이상 재정의하지 않으려는 경우 C #에서 sealed 키워드를 사용해야합니다.

Variables

변수를 한 번만 할당하려면 다음을 수행하십시오.

JAVA

public final double pi = 3.14; // essentially a constant

C#

public readonly double pi = 3.14; // essentially a constant

참고로 readonly 키워드의 효과는 readonly 표현식이 compile-time이 아니라 런타임에 평가되어 임의의 표현식을 허용한다는 점에서 const

출처 : https://stackoverflow.com/questions/1327544/what-is-the-equivalent-of-javas-final-in-c
728x90
반응형