다음 소스 코드와 같이 new 를 사용한 상속과 virtual 을 이름을 가지고 상속하는 내용에 차이가 있다.
결과가 다음과 같다.
Derived.FuncA
Derived.FuncB
Base.FuncA
Derived.FuncB
Base.FuncA
Base.FuncB
using System;
class Base{public void FuncA(){
Console.WriteLine("Base.FuncA");
}
public virtual void FuncB(){
Console.WriteLine("Base.FuncB");
}
}
class Derived: Base{
new public void FuncA(){
Console.WriteLine("Derived.FuncA");
}
public override void FuncB(){
Console.WriteLine("Derived.FuncB");
}
}
class Together{
public static void Main(){
Derived d = new Derived();
d.FuncA();
d.FuncB();
Base a = d;
a.FuncA();
a.FuncB();
Base k = new Base();
k.FuncA();
k.FuncB();
}
}
'C#' 카테고리의 다른 글
마소에서 제공하는 C# Sample 파일 (0) | 2009.08.28 |
---|---|
C#에 대한 문서 (0) | 2008.06.05 |
GUI방식으로 구성한 EchoClient (0) | 2006.05.30 |
간단한 Class 테스트 (0) | 2006.05.29 |
.NET 기반의 Socket클래스를 이용한 Echo Client 프로그램 (0) | 2006.05.29 |