函数的多态性是指什么?
多态性:顾名思义就是拥有“多种形态”的含义,是指属性或方法在子类中表现为多种形态。 在JAVA中有两种多态是指:运行时多态和编译时多态。多态性是面向对象的核心特征之一,类的多态性提供类中成员设计的灵活性和方法执行的多样性。 多态指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
如何正确认识Java多态?
假设题主为成年男性;
假设题主交往过多个女朋友;
那么对于题主而言,有女朋友的概念(抽象类);
在不同的交往经历中,女朋友指向的对象不一样,可能是紫涵、诗颖,也可能是翠花...(具体对象);
根据题主不同时期的审美,这些女朋友就会有不同的特征,如脸蛋、身高、胖瘦、三围等等(属性或特征);
当然女朋友能做的事情也不一样,如饭做的好不好,好不好调教,活好不好(行为或方法),额,好像偏题了。
这就是一个多态的例子,面向对象编程里的多态就是这么个意思。
不知道我的假设是否成立,如果不成立题主还是先找个女朋友再来学编程。
为什么说java中接口是最能体现多态的概念?
多态本质概念应该是一种类型有多种表现形态,具体到程序中就是一个类型定义的同一个操作有多种逻辑实现。Java中接口就是一种非常纯粹的一种类型,它只是定义这个类型能干什么,并没有定义怎么干,而只有实现它的具体实现类才定义了怎么干(具体逻辑)。这恰恰与多态高度相符。实际上c++里面的只有纯虚函数的类与Java接口就非常相似了,区别在于Java有接口这一个概念。
如何理解python中的多态?
OOP(面向对象编程)中,依赖于对象类型的行为,称为多态。
废话不说,直接上代码:
注意:introduciton()函数,是针对App类型编程,而不是Toutiao、Weixin、 Taobao三个具体类型,因为我们在编写introduction()函数时,不知道有多少种具体的App, 也不可能遍历所有的App具体类型(每天都有新的app被开发)。但是无论将来你扩展多少个App具体类,只要它遵守协议(即实现hello成员函数),我们的introduction()都可以正确运行。这就是多态,使得我们编程时不针对具体的子类型,而是父类型编程,这使得代码可以重用,开发效率大大提高。
因为python是动态类型语言,可能你看上述代码时觉得理所当然,但这背后隐藏着更深层次的东西。一旦上述代码放到静态类型语言去实现,比如Java中,introduction函数的入参类型比必须提前定义好,你有两个选择,要么是App父类,要么是某个具体类型的App:如果是后者,你要代码扩展性会很差,会写更多的代码;而如果是前者,恭喜你,你发挥了多态的威力。
正因为pytyon是动态类型,多态在Python中到处可见。比如“*”这个运算符(本质也是一个函数),对于int, string, list类型,都可以正确执行(见上图的demo2部分)
以上为个人意见,欢迎批评指正,共同交流。喜欢的可以关注我,谢谢!
认同上述看法的,请点个赞再走。多谢支持!
一般看到多态,就知道是面向对象的特点。而Python作为一门面向对象的语言,其也是有这个特点的。
多态,通俗的来说就是父类的一个方法,可以被子类使用,在该方法的基础上,子类还拥有其他的方法,相当于发扬光大了,更加的多,而且不同。
不知道这么说,你会不会更加清晰一些,希望对你有帮助。
还没有评论,来说两句吧...