本帖最后由 plottowan_1977 于 2009-10-23 14:23:58 编辑

解决方案 »

  1.   

    要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
      

  2.   

    Employee employee2 = new Employee("Bob", 1200);
    Employee employee1 = new SalesEmployee("Alice", 1000, 500);
    兄台..  多态是这样用的
      

  3.   

    override表示对继承方法的重写,可以实现多态。
    lz把main代码改成如下,加关键字的结果还是一样,如果不加override的话,结果就是Employee Alice earned: 1000 
    Employee Bob earned: 1200 不加override表示跟父类的同名函数脱离继承关系,没有办法实现多态。
    c#设计的一个原则就是要求明确表达代码意图,所以要求重写的方法前面必须加override。
            static void Main()
            {
                // Create some new employees.
                Employee employee1 = new SalesEmployee("Alice",
                              1000, 500);
                Employee employee2 = new Employee("Bob", 1200);            Console.WriteLine("Employee " + employee1.name +
                          " earned: " + employee1.CalculatePay());
                Console.WriteLine("Employee " + employee2.name +
                          " earned: " + employee2.CalculatePay());
            }