더북(TheBook)

43.7 this와 this( ) 그리고 base와 base( )

클래스 내에서 this는 자신을 의미하고, this()는 자신의 생성자를 나타냅니다. 마찬가지로 base는 부모 클래스를 의미하고, base()는 부모 클래스의 생성자를 나타냅니다.

 

클래스 상속을 사용한 부모의 protected 멤버에 접근하기

부모 클래스의 public, protected 멤버는 자식 클래스에서 물려받아 사용 가능합니다. 이미 만들어 놓은 기능을 그대로 다시 사용하려면 클래스의 상속으로 이를 구현할 수 있습니다. 클래스 상속으로 자식 클래스에서 부모 클래스의 멤버에 접근하는 예를 살펴보겠습니다.

클래스 상속으로 부모의 protected 멤버에 접근: ClassInheritance.cs

using System;

namespace ClassInheritance
{
    public class ParentClass : Object     //ⓐ 모든 클래스는 Object 클래스에서 상속
    {
        protected void Print1() => Console.WriteLine("부모 클래스에서 정의한 내용");
    }

    public class ChildClass : ParentClass //ⓑ 콜론 기호로 부모 클래스 지정
    {
        public void Print2() =>
            base.Print1();               //ⓒ 자식에서 base 키워드로 부모 요소에 접근
    }

    class ClassInheritance : Object
    {
        static void Main()
        {
            //① 부모 클래스의 인스턴스 생성
            ParentClass p = new ParentClass();
            Console.WriteLine(p.ToString()); //ClassInheritance.ParentClass
            //② 자식 클래스의 인스턴스 생성
            ChildClass c = new ChildClass();
            //Print1() 메서드는 protected로 설정되어 있어 외부에서 접근 불가
            //c.Print1();
            c.Print2(); //자식 클래스에 직접 구현한 기능
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.