더북(TheBook)

필드 숨기기

이번에는 private 키워드로 필드를 숨기거나 protected 키워드로 자식 클래스에만 멤버를 상속하는 예제를 살펴보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

멤버 상속: FieldHiding.cs

using System;

namespace FieldHiding
{
    class Parent
    {
        //① 필드 숨김: 필드는 무조건 private으로 설정
        private string _word;

        //② protected는 자식 클래스에서만 호출 가능한 멤버
        protected string Word
        {
            get { return _word; }
            set { _word = value; }
        }
    }

    class Child : Parent
    {
        public void SetWord(string word)
        {
            base.Word = word;
        }
        public string GetWord()
        {
            return Word; //부모 클래스의 Word 속성 접근
        }
    }

    class FieldHiding
    {
        static void Main()
        {
            Child child = new Child();
            child.SetWord("필드 숨기기 및 자식 클래스에만 멤버 상속하기");
            Console.WriteLine(child.GetWord());
        }
    }
}

실행 결과

필드 숨기기 및 자식 클래스에만 멤버 상속하기

필드에 private을 붙이면 해당 필드는 해당 클래스에서만 사용됩니다. 이를 필드 은폐(field hiding) 또는 필드 숨기기라고 합니다. 클래스 멤버 중에서 자식 클래스에만 상속하고 외부에는 공개하지 않고 보호하려면, publicprivate이 아닌 protected 키워드를 붙여 멤버를 만듭니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.