using System ;
class A
{
public void output()
{
Console.WriteLine("A中自定义方法1");
}
public virtual void input()
{
Console.WriteLine("A中虚函数");
}
public void Do()
{
Console.WriteLine("A中自定义方法2");
}
}
class B:A
{
new public void output()
{
Console.WriteLine("B中隐藏方法1");
}
public override void input()
{
Console.WriteLine("B中重写虚函数");
}
public void Dosomething()
{
Console.WriteLine("B中自定义方法");
}
}
class Test
{
static void Main()
{
A a=new A ();//调用A中方法
a.output ();
a.input ();
a.Do ();
 

A aa=new B ();
aa.output ();//调用A中方法
aa.input ();//调用B中方法
aa.Do ();//调用A,B中共同方法

B b=new B ();//调用B中方法
b.output ();
b.input ();
b.Do ();
b.Dosomething ();
}
}