多态性分为静态多态性和动态多态性,而今天给大家讲一下动态性多态;首先动态多态性是通过虚方法和抽象类去实现的。
虚方法
当父类有一个方法需要在继承的类实现时候,可以使用虚方法。虚方法通过使用virtual来进行定义。而虚方法可以再不同的类里面有不同的实现并是在运行的时候发生的;而虚方法就是动态多态性的一个体现。例如下图所示:
抽象类
抽象类就是使用abstract来定义的,但是只是用来列举一个类所具备的行为,不能通过new创建对象但可以有抽象方法,只有声明部分没有实现部分;当然抽象类里面也可有普通方法但不能是static(静态)也不能是sealed(密封)。
定义抽象的方法:
- 只能定义在抽象类里面,在方法前面添加abstract进行修饰
- 只有声明部分 没有实现部分
- 抽象方法在子类被实现 需要在子类的方法前面添加overrider关键字
- 子类必须重写所有的父类的抽象方法,除非子类也是抽象类
例如下图所示:
方法的调用:
当以上代码被执行时,会产生以下结果:
我是艾西,技能是:冰霜降临,职业是ADC
ADC吃河蟹兵线