Jesseylove

导航

c# 重写

  a.重写父类的方法要用到override关键字(具有override关键字修饰的方法是对父类中同名方法的新实现)

 

     b.要重写父类的方法,前提是父类中该要被重写的方法必须声明为virtual或者是abstract类型。给父类中

     要被重写的方法添加virtual关键字表示可以在子类中重写它的实现。(注意:C#中的方法默认并不是

     virtual类型的,因此要添加virtual关键字才能够被重写)

 

     C.virtual关键字用于将方法定义为支持多态,有virtual关键字修饰的方法称为“虚拟方法”

      [访问修饰符] virtual [返回类型] 方法名(参数列表)

     {

     //虚拟方法的实现,该方法可以被子类重写

     }

namespace ConsoleApplication1
{
    class Employee
    {
        public Employee()
        {
            Console.WriteLine("父类的构造方法");
        }
        public virtual void EmpInfo()
        {
            Console.WriteLine("父类的虚拟方法");
        }
    }
    class DervEmployee : Employee
    {
        public DervEmployee()
        {
            Console.WriteLine("子类的构造方法");
        }
        public override void EmpInfo()
        {
            base.EmpInfo();//base关键字将在下面拓展中提到
            Console.WriteLine("子类的重写方法");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DervEmployee objDervEmployee = new DervEmployee();
               objDervEmployee.EmpInfo();
                //注意:objDervEmployee派生类的实例是赋给Employee类的objEmployee的引用,
                // 所以objEmployee引用调用EmpInfo()方法时 还是调用DervEmployee类的方法
               Employee objEmployee = new Employee();
               objEmployee.EmpInfo();
        }
    }
}

 

posted on 2018-04-17 15:23  Jesseylove  阅读(1328)  评论(0编辑  收藏  举报