本人最近刚考完研,准备捡起来之前大一大二学的技术,复习了一下基础,发现之前虽然学了很多,但对每一点都没有达到深入,经不起盘问,故将自己学习过程中一些感受有困惑的记录下来用以复习和记录。
第二篇已更,Java中的多态(二)---动态绑定(父类引用指向子类对象)-CSDN博客,看之前先看看这篇铺垫一下,如果你已经了解参数传递的多态可以直接跳过
在复习Java过程中,对于Java的三大特性,封装,继承,多态。前两个见明知意,对于多态可能就是初学者难以理解和困惑的点,常看常新。
以我理解,多态,顾名思义,多种状态,生活中对于多种状态的事物数不胜数,但在代码中,多种状态就很难去说明白,Java中如何去实现代码的多种状态?如果你已经知道了封装和继承,那么对于多态就会好很多,所以建议是先去搞明白封装和继承。
对于Java而言,所有的代码都是面向对象的,把事物抽象成类,把事物的动作、能力抽象成方法。因此在项目中,当你写的类,方法要工作时少不了需要传参,普通参数就不需要讲了,重要的是:对象参数!!
接下来就是多态的第一个重要点----参数传递!
当你写了一个方法,需要去接收一个对象参数,需要考虑的问题就是,如何传参以及参数如何使用,传参是否正确。对于对象参数,你可以选择1对1的传,也就是需要什么对象传递什么对象,这肯定是可以的,只要你传递的对象正确后续的对象使用也是没有任何问题的---这是最普通的对象传参。
在Java中,当你有一个父类,他被10个子类继承,子类中有各自的方法。此时你假如有一个方法需要子类对象并且调用里面的方法,你能够写十个方法去接收不同的子类对象然后去调用吗?
当然,你可以!十个算毛,1000个劳资也是cv之神!你cv爽了,老板就该给你炒菜了!
很明显,Java不会这么蠢,作为热门语言,它有自己的解决方式----多态。你可以只写一个方法,参数类型指定父类,Java的多态之一就体现在可以使用父类对象接收子类对象参数。十个、百个子类对象,你都只需要用父类对象去接收这个参数,后续的使用当然就是继承的知识了(子类重写父类的方法,你调肯定也调的是子类的方法.......此处省略展开说就太多了,后续需要的话可以拆出来单独出一期)
至于为什么可以去接收子类对象,底层原理那我也没深究(菜),毕竟作为工具性语言,我们主要的还是理解使用,类比生活中,假如你爸爸有十个孩子,接十个孩子放学,那不是理所应当的嘛。
好了,这个就是多态中比较简单的一个使用方式--参数传递。很多人可能一直在用,但会用和能清晰的说给面试官是两码事。
觉得还不错可以点个关注昂,以后平常遇到的问题都会记录下来分享!