C#中的虚方法有什么作用呢?能举个例子说明吗?