1.new关键字和virtual关键字都可以使子类去写自己的方法(抒发个性),
2.但是new是隐藏父类方法,override则是重载父类方法
比如:实例化对象是使用父类的引用时, PET pet = new Dog();那么所有的对象都会按照父类的方法来运行。(这样就无法发挥自己的个性了)
而在父类中使用virtual关键字声明的方法,使用override重写这个方法时,即便实例化对象是使用父类的引用,调用方法的时候还是会执行自己重写的方法
虚方法这一特点就正好诠释了多态的作用:通过指向子类的父类引用,调用虚函数(或方法)会根据父类引用所指向的派生类的实际类型,调用派生类中的同名函数
2.但是new是隐藏父类方法,override则是重载父类方法
比如:实例化对象是使用父类的引用时, PET pet = new Dog();那么所有的对象都会按照父类的方法来运行。(这样就无法发挥自己的个性了)
而在父类中使用virtual关键字声明的方法,使用override重写这个方法时,即便实例化对象是使用父类的引用,调用方法的时候还是会执行自己重写的方法
虚方法这一特点就正好诠释了多态的作用:通过指向子类的父类引用,调用虚函数(或方法)会根据父类引用所指向的派生类的实际类型,调用派生类中的同名函数
2017-12-20