[C#] this와 상속

Programming/.NET Programming 2009. 5. 31. 07:07

키워드 this

this : Class에서 정의한 변수나 함수에 접근할 때 사용. 즉, 클래스 멤버 변수나 멤버 함수에 접근할 때 사용. 혹은 class의 멤버 변수나 멤버 함수라는 것을 명시적으로 표현하기 위해서 사용.

키워드 this 예제

using System;

 

namespace This

{

    class A

    {

        public static void Main(string[] args)

        {

            B b = new B("HELLO");

            Console.WriteLine(b.strMessage);

            Console.WriteLine(b.num);

        }

    }

 

    class B

    {

        public string strMessage;

        public int num;

        public B(string strMessage)

        {

            // 함수의 지역변수가 아닌 Class 멤버 변수에 접근하기 위해서 사용
           
this.strMessage = strMessage; 

            this.num = 10; // 명시적으로 하기 위해서 사용

        }

    }

}


상속 관련 문제

Q. B가 부모클래스이고, A가 자식클래스일 때 어떤 것이 맞는 표현일까요?
1. B b = new A();
2. A a = new B();

A. 1. B b = new A();
 

 위 벤다이어그램에서 보면 B b = new A();일 경우 b는 A크기의 공간을 할당 받아 가리키게 되며, Class B가 가진 멤버 변수에 전부 접근이 가능하다. 하지만 A a = new B();일 경우 a는 B크기의 공간을 할당 받아 가리키게 되며, Class A가 가진 멤버 변수에 전부 접근이 가능하지는 않다. 그렇기 때문에 에러가 난다.


'Programming > .NET Programming' 카테고리의 다른 글

[C#] Collections (1)  (0) 2009.06.02
[C#] Enum과 배열  (0) 2009.05.31
[C#] 오버로딩과 오버라이딩  (0) 2009.05.31
[C#] 상속과 sealed  (1) 2009.05.31
[C#] 인터페이스, 추상클래스, 클래스  (1) 2009.05.31
: