Parent par = new Child();//Child是Parent的子类
par.Function3();//Function3是在Parent里是虚方法,在Child里override,这里调用的实际上是Child里的Function3
//Child ch = new Parent();这样实例化,报错
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Parent
{
public Parent()
{
Console.WriteLine("Parent");
}
public void Function1()
{
Console.WriteLine("这是父类的方法");
}
public virtual void Function2()
{
Console.WriteLine("这是第二个父类的方法");
}
public virtual void Function3()
{
Console.WriteLine("这是父类的虚方法");
}
public void Function4()
{
Console.WriteLine("Parent的Function4");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Child:Parent
{
public Child():base()
{
Console.WriteLine("Child");
}
public new void Function2()//感觉加不加new都一样
{
base.Function2();
Console.WriteLine("这是重写父类的方法");
}
public override void Function3()//感觉加不加overide都一样
{
Console.WriteLine("这是重写父类的虚方法");
}
}
}