今天想温故而知新,想更彻底的了解下虚方法,估计大多数人跟我一样对虚方法很多的认识仅在于---------------------方法名前有virtual修饰的就被称为虚方法,无virtual修饰的方法称为非虚方法.
虚方法与非虚方法有啥区别呢?其实很关键的一点就是-----------------------在一个虚拟方法调用中,该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。在非虚拟方法调用中,相关的实例的编译时类型是决定性因素。
那么实例在编译和运行时的类型分别是什么呢?eg A a= new B();____A,B都为一个类.那么a实例在编译时候的类型就是A,而运行时候的类型就为B.
Eg:
using System;
class A
{