New.cs
namespace ClassDemo
{
// New 实现对一般方法的隐藏
public class BaseClass
{
public void hello()
{
Console.WriteLine("你好,这是来自 父类");
}
}
public class DerivedClass : BaseClass
{
public new void hello()
{
Console.WriteLine("你好,这是来自 子类");
}
}
}
Polymorphic.cs
namespace ClassDemo
{
// 多态,子类重新定义父类的虚函数后,父类根据赋予的不同指针,动态调用子类的方法
public abstract class AbsBaseClass
{
public abstract void hello();
}
public class DerivedClass2 : AbsBaseClass
{
public override void hello()
{
Console.WriteLine("你好!子类");
}
public static void SayHello(AbsBaseClass obj)
{
obj.hello();
}
}
}
namespace ClassDemo
{
class Program
{
static void Main(string[] args)
{
// New #1
BaseClass obj = new DerivedClass();
DerivedClass obj1 = new DerivedClass();
obj.hello();
obj1.hello();
//Console.ReadKey();
// 多态
DerivedClass2 _obj = new DerivedClass2();
DerivedClass2.SayHello(_obj);
Console.ReadKey();
}
}
}