我是靠谱客的博主 专注盼望,最近开发中收集的这篇文章主要介绍java多态的理解(运行时多态)_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ac8060faa74e874261300e34818476c1.png

一、什么是多态?

多态其实就是根据参数不同而执行不同的方法。

二、php中的多态

多态的概念一般是强类型语言来谈的,因为强类型语言它必须要声明参数类型,比如一个手电筒对象的打开方法其参数申明了只能是蓝光,就不能传其他光。但可以用父类渲染的方式使其多态,比如声明一个光的父类,让其它颜色的光都继承自这个光的父类,申明其参数为父类光,然后传光的任何子类都可以,这就是强类型的多态。

但php是弱类型的动态语言,不检测参数类型,传什么都可以;但在php5.3版本可以声明参数为某对象;当声明参数为某类实例化后的对象时,就得用父类渲染的方式令其多态;

三、php多态的理解

php是面向对象的脚本语言,而我们都知道,面向对象的语言具有三大特性:封装,继承,多态。php理应具有这三大特性。

封装是类的构建过程,php具有;php也具有继承的特性。唯独这个多态,php体现的十分模糊。原因是php是弱类型语言。

java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。

php不具有像java那种清晰的多态,不是代表php不具有多态性。看下面一个例子:

abstract class animal{abstract function fun();}class cat extends animal{function fun(){echo "cat say miaomiao...";}}class dog extends animal{function fun(){echo "dog say wangwang...";}}function work($obj){if($obj instanceof animal){$obj -> fun();}else{echo "no function";}}work(new dog());work(new cat());

上边的类是抽象类,也表明了接口与实现接口的类对象同样可以适用。

最后

以上就是专注盼望为你收集整理的java多态的理解(运行时多态)_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...的全部内容,希望文章能够帮你解决java多态的理解(运行时多态)_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部