접근제어자 new 반환형 메서드이름([인자])
여기서 new는 "이 메서드를 새로 쓰겠다." 라고 C#
컴파일러에게 알려주고 있다. new 제한자는 메서드 뿐
아니라, 부모 클래스의 모든 멤버를 숨길 수 있다. 이렇게
부모 클래스의 멤버를 숨기면 자식 클래스는 이 멤버를
마치 부모에게서 물려받지 않고 자신이 만들어 낸 것 처럼
새롭게 쓸 수가 있는 것이다.
[ex]
class b
{
int x = 55;
}
class Derived : b
{
new int x = 100;
}
ex)
/* 2/24 객체지향적 프로그래밍(상속: new(접근제한자))*/
using System;
class shape
{
public void Draw()
{
Console.WriteLine("이곳은 shape 클래스의 메소드 입니다.");
}
}
class triangle : shape
{
public new void Draw() /* 여기서 new(접근제한자)는 아버지클래스인 shape의 함수
Draw()의 값을 숨기고 또다른 Draw()함수를 생성해서 다른 값을 주는 것임.
즉 같은 이름의 Draw()함수일지라도 결국 다른 함수인 것이다. */
{
Console.WriteLine("이곳은 triangle 클래스의 메소드 입니다.");
base.Draw(); /*base 키워드는 부모클래스의 메소드 호출후 출력
즉 기존에 숨겼던 아버지클래스의 Draw()함수의 값을 다시 출력함. */
}
}
class newbase
{
public static void Main()
{
shape s = new shape(); // 객체 생성후 메모리 등록
s.Draw();
triangle t = new triangle();
t.Draw();
}
}
'IT_Programming > C#' 카테고리의 다른 글
메서드 오버라이딩3 - virtual (0) | 2006.02.24 |
---|---|
메서드 오버라이딩2 - abstract (0) | 2006.02.24 |
상속 (0) | 2006.02.24 |
접근제한자 (0) | 2006.02.24 |
생성자(constructor) (0) | 2006.02.24 |