java에서 final 같은 기능을 C#에서는 어떻게 쓰죠?


java에서 final 같은 기능을 C#에서는 어떻게 쓰죠?

  • 2016년 01월 12일에 작성됨

조회수 604


1 답변


좋아요
1
싫어요
채택취소하기

java에서 final은 여러용도인데 그건 C#에선 sealed랑 readonly랑 같습니다.

클래스에서 상속을 방지할때

Java public final class MyFinalClass {...} C# public sealed class MyFinalClass {...}

메소드에서 가상함수의 오버라이딩을 방지할때

Java

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

C#

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

두 언어간에 주목할만한 차이는 자바에서는 모든 비정적 메소드가 가상으로 오버라이딩 될 수 있는데 C#에서는 override로 표현을 해야 오버라이딩이 가능합니다. 그러므로 더이상 오버라이딩 하길 원하지 않을때 메소드 앞에 sealed를 붙여주시면 됩니다.

변수에서 상수선언할때

Java public final double pi = 3.14; C# public readonly double pi = 3.14;

추가적으로

readonly는 생성자에서 한 번 더 할당할 수 있고 const는선언시 값이 할당되어야 하는 차이가 있습니다.

  • 2016년 01월 12일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close