이전에는 new 키워드를 설명했죠.
new 키워드는 base class 와 derived class 에 똑같은 메소드명을 구현하여 Console.Write 와 같은 출력문에 대한 코딩을 했을 경우, Main() 메소드에서 호출시 어느 클래스에서 왔는지 구분하기 위해 derived class 에 있는 메소드에 new 키워드를 기재합니다.
그럼 base 키워드는 무엇에 쓰일까요?
만약에 base class 에 출력문에 대한 메소드를 구현을 미리 해놓고, derived class 에서 base class 를 상속받아, base class 에 구현해 놓은 메소드를 사용하고자 할 경우, base.메소드명() 을 코딩하면 호출되어 출력이 됩니다.
아래의 소스를 base class 에 정의하고요.
public void W_CallMe()
{
Console.WriteLine("W_CallMe() 는 a = {0}, b={1}",a,b);
}
아래의 소스는 dervied class 에 정의하겠습니다.
public new void W_CallMe()
{
base.W_CallMe();
Console.WriteLine("W_CallMe() 는 a={0},b={1},c={2}",a,b,c);
}
base.W_CallMe(); 를 주의깊에 보시면 되는데요. base class 에 선언된 W_CallMe() 메소드를 호출하기 위해 앞에 base 키워드 선언한 것을 보실수 있답니다. 만약에 base 키워드를 없애고 실행하면 본인 자신을 계속 부르겠죠.
메소드 뿐만 아니라 필드도 base 키워드를 사용하여 사용할 수 있답니다.
base.a; //필드 사용 예
base.W_CallMe(); //메소드 사용 예
우리는 전 강좌에 생성자에 대해 말씀드린 적이 있습니다. 생성자 또한 base 키워드를 이용하여 사용할 수 있는데요.
생성자에 초기값을 입력하고 있습니다
base 키워드를 사용하여 이용하는 방법을 볼 수 있습니다. 이런 점이 상속으로 인해 모든것을 만들어 낼 수 있답니다.
일일이 각각의 클래스마다 변수를 일일이 나열할 필요가 없어 시간과 경제적으로 많은 효과를 볼 수 있습니다.
posted by 심재운 (shimpark@gmail.com)