再谈多态的意义和操作过程
多态的意义
在面向对象编程(OOP),多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。这也是为什么有人说,使用面向对象语言的编程和面向对象的编程是两码事。多态并没有一个严格的定义重载就是多态的一个例子,运行时运行的时候调用的是确定的方法。
通常所说的多态指的都是运行时多态,也就是不确定究竟调用哪个具体方法,一直延迟到运行时才能确定。其核心之处就在于对父类方法的改写或对接口方法的实现,以取得在运行时不同的执行效果。
多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。
编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来,再通过这个抽象的事物,与不同的具体事物进行对话。对不同类的对象发出相同的消息将会有不同的行为。
多态是面向对象程序设计和面向过程程序设计的主要区别之一,何谓多态?“龙生九子,子子不同”多态就是同一个处理手段可以用来处理多种不同的情况。
比如有一个函数是叫某个人来吃饭,函数要求传递的参数是人的对象,可是来了一个美国人,你看到的可能是用刀和叉子在吃饭,而来了一个中国人你看到的可能是用筷子在吃饭,这就体现出了同样是一个方法,可以却产生了不同的形态,这就是多态!复用相同接口,实现不同的操作。
为什么要用多态:
不使用多态的话就要针对不同的对象逐一定义方法。若一个类有很多很多子类,那么代码量是非常庞大的。因此,多态就非常有用了,对写高质量的代码应该会有帮助!
没有继承就没有多态,多态就是少一些函数名。
多态的使用
当治疗方法在执行的过程中,根据传递的数据的不同,在执行时调用
不同的处理代码或者处理函数,来完成治疗效果,动态处理(多态)
人的类型VS动物类型,不是多态~而是通过if条件判断执行代码
人/男人/女人,执行的代码一致【运行过程中,才确定调用谁的方法】