我觉得为什么会有虚方法,毕竟覆盖方法有很多种方式,我感觉虚方法以及其他不是有点多余了吗,我有点搞不清楚多态,所以我做了这样一个实验
public class Polymorphism1
{
public void print()
{
Console.WriteLine("我是polymorphism1");
}
}
public class Polymorphism2 : Polymorphism1
{
public void print()
{
Console.WriteLine("我是polymorphism1");
}
}
然后我输出
class Program
{
static void Main(string[] args)
{
Polymorphism1 p1 = new Polymorphism1();
Polymorphism1 p2 = new Polymorphism2();
Polymorphism2 p3 = (Polymorphism2)p2;
Polymorphism2 p4 = new Polymorphism2 ();
p1.print();
p2.print();
p3.print();
p4.print();
Console.Read();
}
}
输出结果是
为什么都是父类的,子类的一个都没有,是不是只要不覆盖父类方法就不能实现多态,调用的永远是父类方法,我现在仅仅知道子类可以调用父类的方法,继承父类的一切