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

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

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는선언시 값이 할당되어야 하는 차이가 있습니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.