728x90
반응형
질문 : C #에서 Java의 최종 결과는 무엇입니까?
C #에서 final
는 무엇입니까?
답변
final
키워드는 Java에서 여러 용도로 사용됩니다. 사용되는 컨텍스트에 따라 C # sealed
및 readonly
키워드에 모두 해당합니다.
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
반응형
'개발관련 > other' 카테고리의 다른 글
Regex 두 문자열 사이의 모든 문자가 일치 하는지 확인하는 방법 (0) | 2021.12.19 |
---|---|
.md 확장자를 사용하는 파일을 편집하는 방법 (0) | 2021.12.16 |
Chrome에서 동일한 출처 정책 사용 중지 하는 방법 (0) | 2021.12.16 |
C #의 동기 메서드에서 비동기 메서드를 호출하는 방법 (0) | 2021.12.16 |
Windows의 명령 줄에서 빈 파일을 만드는 방법 (0) | 2021.12.16 |