C# SEALED와 Java의 최종 키워드간에 기능적 차이가 있습니까? [복제하다
문제
가능한 복제 :
C#에서 Java의 결승전과 동등한 것은 무엇입니까?
Java에서 Final은 단순한 클래스 이상에 적용됩니다.
그래서 궁금합니다. 두 키워드 사이에 기능적 차이가 있습니까?
감사합니다. 비교적 멍청한 질문에 대해 죄송합니다.
빠른 Google 검색은 내 요구를 충족시키지 못했습니다.
해결책
Java 's final
키워드는 C#과 동일합니다 sealed
, readonly
, 그리고 sealed
키워드.
이 세 가지 중 2 개는 Java와 C#에서 다소 다릅니다.
Java에서 메소드는 기본적으로 가상이므로 모든 메소드를 선언 할 수 있습니다. final
재정의되지 않도록합니다. C#에서 메소드는 기본적으로 가상이 아니므로 유일한 재정의 메소드를 선언 할 수 있습니다. sealed
(더 이상 무시 당하지 않도록)
Java에서는 모든 변수 또는 필드를 선언 할 수 있습니다. final
초기화 후 (및 필드의 경우, 생성자 외부)가 변경되는 것을 방지합니다. C#에서는 필드를 선언 할 수 있습니다 readonly
, 똑같은 효과는 있지만 로컬 변수는 할 수 없습니다. Java에는 C#의 동등한 것이 없습니다. const
예어. (const
C#의 S는 컴파일 타임에 평가되며 값은 참조 대신 하드 코딩됩니다).
클래스의 경우 C#의 경우 sealed
수업과 자바 final
클래스는 정확히 동일합니다 (AFAIK).
다른 팁
이 답변을 살펴보십시오. C#에서 Java의 결승전과 동등한 것은 무엇입니까?