C#关键字 虚方法和抽象方法

  虚方法vitual和抽象方法abstract的区别:

  1虚方法和抽象方法都是为了多态而诞生的

   2虚方法利用关键词virtual表示,抽象方法利用abstract表示

   3虚方法有实现的主题,可以有实现,也可以没有实现,而抽象方法仅仅只有一个声明,在子类中必须进行override即实现

   4虚方法在调用的时候可以使用父类的方法实现主题,而抽象方法则必须在子类中进行override

   5虚方法可以存在于普通的类中,而抽象方法只能存在于抽象类之中,及abstract类中

 

   另外:

   为什么需要new修饰符,即在继承一个父类的时候,子类中利用new来隐藏父类的实现,出现的作用就是为了弥补父类的设计不足,从而来隐藏父类的使用

 

  多态:一个是基类继承式多态,一个是接口实现式多态

 

  动态绑定:即晚期绑定,是为了区别静态绑定的区别,静态绑定是在编译期就能确定关联,通过方法的override来实现,而动态绑定是在运行期通过方法的重载即override来实现的

 

   在使用多态的时候,前面的父类型或者是实现的接口类型的作用:在运行期的时候,通过检查此方法,然后看方法的类型,如果是虚方法或者是抽象方法,那么就看具体的类型有没有重载此方法,如果重载了此方法,那么就调用具体类型的实现方法,如果没有,那么就直接调用父类的实现方法

你可能感兴趣的:(C#)