在PHP中,变量的类型是不确定的,一个变量可以指向任何类型的数值、字符串、对象、资源等。我们无法说php5中多态的是变量。
我们只能说在php5中,多态应用在方法参数的类型提示位置。
一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求。所有实现这个接口的类,都可以满足以接口类型作为类型提示的方法参数要求。简单的说,一个类拥有其父类、和已实现接口的身份
通过实现接口实现多态
下面的例子中,useradmin类的静态方法,要求一个user类型的参数。
在后面的使用中,传递了一个实现了user接口的类normaluser的实例。代码成功运行。
<?
interface user{ // user接口
public function getname();
public function setname($_name);
}
class normaluser implements user { // 实现接口的类.
private $name;
public function getname(){
return $this->name;
}
public function setname($_name){
$this->name = $_name;
}
}
class useradmin{ //操作.
public static function changeusername(user $_user,$_username){
$_user->setname($_username);
}
}
$normaluser = new normaluser();
useradmin::changeusername($normaluser,"tom");//这里传入的www.3ppt.com是 normaluser的实例.
echo $normaluser->getname();
?>
php 接口类:interface
其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :
代码如下:
interface shop
{
public function buy($gid);
public function sell($gid);
public function view($gid);
}
我声明一个shop接口类,定义了三个方法:买(buy),卖(sell),看(view),那么继承此类的所有子类都必须实现这3个方法少一个都不行,如果子类没有实现这些话,就无法运行。实际上接口类说白了,就是一个类的模板,一个类的规定,如果你属于这类,你就必须遵循我的规定,少一个都不行,但是具体你怎么去做,我不管,那是你的事,如:
代码如下:
class baseshop implements shop
{
public function buy($gid)
{
echo('你购买了id为 :'.$gid.'的商品');
}
public function sell($gid)
{
echo('你卖了id为 :'.$gid.'的商品');
}
public function view($gid)
{
echo('你查看了id为 :'.$gid.'的商品');
}
}
下面缩一下方法
<?php
interface myusbkou
{
function type();//类型
function action();//执行的操作
}
class zip implements myusbkou
{ //继承接口
function type()
{
echo "usb的2.0接口";
}
function action()
{
echo "--->需要usb 2.0驱动";
}
}
class mp3 implements myusbkou
{
function type()
{
echo "mp3的1.0接口";
}
function action()
{
echo "--->需要mp3 1.0驱动<br/>";
}
}
class mypc
{
function usbthing($thing)
{
$thing->type();
$thing->action();
}
}
$p=new mypc();
$mp3=new mp3();
$zip=new zip();
$p->usbthing($mp3);
$p->usbthing($zip);
?>
分享到:
相关推荐
接口多态的实现,引用,对于初学者是一份比较好的课程文件
多态和接口学习笔记 https://blog.csdn.net/zhongxiayue/article/details/88967550
通过两个程序代码例子彻底理解什么是多态,什么是虚函数;
java 继承与多态应用 输出员工信息java 继承与多态应用 输出员工信息 代码实例
实现重载(overload)和重写(override) 调用中用到多态,向上转换,强制转换 所有被创建的类,都各自创建两个实现接口 最底层的类中创建内部类,并在外部类中调用内部类的方法
抽象类多态接口相关资料
掌握类的继承、方法重写、super关键字的使用、final关键字、抽象类和接口、多态的使用以及异常的处理方式 熟悉面向对象继承和多态的概念
抽象类_接口_多态_继承整合案例.。
主要介绍了Python面向对象多态实现原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
c#多态,继承,接口,结构例子
程序设计实验四:继承、多态与接口.doc
Java开发之多态的具体应用,包含多态应用的实例和相应实例的代码。
java对象的引用,控制程序流,初始化和清除,封装,复用类,多态,接口和内部类,异常处理try——catch,类的检查,对象的集合,i/o系统,并发,分析与设计,对象的传递和返回
c# 初学者必需掌握的 多态,接口,线程,重载等等
经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例
1、实验题目:多态和接口编程 2、实验目的:掌握重载、覆盖的多态Java编程,理解类的继承和接口实现的内涵,掌握向上转型的编程技术。
5.1 接口 5.2 塑型 5.3 多态的概念 5.4 多态的应用 5.5 构造方法与多态 5.6 内部类 5.7 本章小结
本资源完全免费,可以配合小菜鸡写的文章一起配合使用,想把一些不好理解的通俗易懂的解释出来,也希望在大学几年能锻炼自己,让自己的文章和代码被更多人使用,更多人喜欢,自己的理解也可以让大家一起讨论,一起...
抽象类、多态及接口! 很值得下载看看!资源免费,大家分享!!