什么是多态性

多态性是数据库的抽象和继承的面向对象的语言的第三个特征。多态性的形式是多样的,并具有表达各种形式的能力。在面向对象,它是处理方式不同,根据对象的类型。多态性允许每个对象以应对一种方式是适合自己的一个共同的讯息。多态性增强了软件的灵活性和重用性。

如果我们创建一个方法(如果是学生),就会打印一个类,然后打印一个公司职员来工作。

常见的做法

用以判断

复制代码代码如下所示:



* PHP的多态性

*琼台博客

* /



学生班学生

班级学生{

公共函数CLA(){

学生们在上课!

}

}



班级/员工的定义

办公类{

公共函数Wor(){

工作人员在工作!;

}

}



确定对象方法的类型

功能做($ obj){

如果($ obj是学生){

$ obj -> CLA();

} elseif($ obj instanceof办公室){

$ obj ->工作();

其他{ }

没有这个对象!;

}

}



做(新)(学生);学生们在上课

做(新的)(办公室);工作人员



输出结果如下:

学生们在上课。

工作人员在工作。

这种常见的方法有一个缺点,也就是说,如果很多对象,那么如果…..很长,不灵活。



Polymorphic practice

定义一个公共抽象方法,所有子类继承它。

复制代码代码如下所示:



* PHP的多态性

*琼台博客

* /



定义一个公共类

类酒吧{

受保护函数工作(){

在子类中需要重载此方法!;

}

}



定义学生类,继承公共类酒吧

班级学生扩展酒吧{

公共函数工作(){

学生们在上课!

}

}



类继承/工作人员、公共类酒吧的定义

班级办公室扩展酒吧

公共函数工作(){

工作人员在工作!;

}

}



确定对象方法的类型

功能做($ obj){

如果($ obj是酒吧){

$ obj ->工作();

其他{ }

没有这个对象!;

}

}



做(新)(学生);学生们在上课

做(新的)(办公室);工作人员



这是一个多态的特性,可以灵活地重用。



其他做法

从多态实现的方式来看,只需对每一类重载父类的方法进行标准化,从而达到统一的效果,在定义一个类时,对自己添加一个统一的方法是可行的,上述例子也可以实现:

复制代码代码如下所示:



* PHP的多态性

*琼台博客

* /



学生班学生

班级学生{

酒吧/方法的定义

公共功能酒吧(){

学生们在上课!

}

}



班级/员工的定义

办公类{

酒吧/方法的定义

公共功能酒吧(){

工作人员在工作!;

}

}



确定对象方法的类型

功能做($ obj){

如果($ obj){

调用类/统一方法

$ obj ->酒吧();

其他{ }

回声没有这个对象;

}

}



做(新)(学生);学生们在上课

做(新的)(办公室);工作人员



当然,上面的例子并不表明多态性可以这样做。毕竟,多态性可以在复杂编程中实现灵活的重用性。

多态性也可以理解为一种编程方法,而编程的最终目标是灵活、多态、重用和高效。