持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情
多态数组:
数组的定义类型为父类类型,数组元素类型为子类类型。 * 这里不多赘述,请小伙伴们看看代码演示:*
此图为主类,我就不再进行展开讲解了,相信小伙伴们看见后面的注释就一目了然了。
此图为父类,里面对属性name和age进行了封装,所以我们在其中写了get和set方法,让我们可以进行读与写的操作。
以下分别为三个继承Person类的两个子类Student、Teacher:
这里不造大家有没有注意到我们是如何调用了子类特有的方法--我们可以通过向下转型的方式,使当前父类引用的指向强制转换为指向子类,让它的运行类型变为子类,那么当你再调用同名的方法时,根据我们前面讲解的规则调用对象的方法时,我们依据其的运行类型,这时我们就可以达到调用调用子类特有的方法的目的了。
以上就是多态数组的代码展示,若还有什么小问题,可以在评论区打出哦~~~
多态参数:
方法定义的形参类型为父类类型,实参类型为子类类型。 这里我就不再进行代码演示了,大家可以去参考前面文章面向对象三大特征二中的代码,里面的 Nacy.feed(dog,bone)就是多态参数的一个引用,大家可以观察到实参类型为子类类型的dog和bone,简单来说就是当你将方法的参数列表里设为父类类型,你可以通过调用这一个方法就可以得到子类运行这个方法的结果,提高了嗲妈的复用性,这也很好理解,因为子类与父类的关系本来就存在继承的,子类就是父类中的一个特例。