C#
C#에서의 상속관련
Tran
2008. 11. 20. 13:41
다음 소스 코드와 같이 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();
}
}