class Animal{ public intAge{get;set;} public virtual void Bite(){} } class Dog:Animal{ public override void Bite(){ Console.WriteLine(Age); } }
父类方法声明为virtual,说明在子类中可以override重写此方法,若没有声明virtual,可以在方法中+new隐藏父方法
继承中实例化先调用父类构造函数再去调用子类的构造函数
当父类构造函数含有多个时,一般只调用默认的构造函数,可以在子类构造函数中指定父类构造函数:base()。也可以引用自身的:this()
Animal dog=new Dog();
用父类来引用子类的实例,调用重写方法是为子类的方法,因为它已经覆盖了父类的方法。当调用的是为new的隐藏父类方法时,因为引用为父类,所以调用的是父类方法,可以通过强制转化为Dog来调用子类的new隐藏了的父类方法。