php 多态与接口学习实现与实例代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-08 20:03:45 浏览: 评论:0
php5中,变量的类型是不确定的,一个变量可以指向任何类型的数值、字符串、对象、资源等,我们无法说php5中多态的是变量.
我们只能说在php5中,多态应用在方法参数的类型提示位置.
一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求,所有实现这个接口的类,都可以满足以接口类型作为类型提示的方法参数要求,简单的说,一个类拥有其父类、和已实现接口的身份.
通过实现接口实现多态:下面的例子中,useradmin类的静态方法,要求一个user类型的参数.
在后面的使用中,传递了一个实现了user接口的类normaluser的实例,代码成功运行.
- <?php
- 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;
- }//开源代码phpfensi.com
- }
- class useradmin{ //操作.
- public static function changeusername(user $_user,$_username){
- $_user->setname($_username);
- }
- }
- $normaluser = new normaluser();
- useradmin::changeusername($normaluser,"tom");//这里传入的是 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);
- ?>
Tags: php多态 php接口 php多态接口
相关文章
- ·php面向对象,自动加载类,对象串行化,多态的应用(2014-08-29)
- ·php 类中多态的应用(2014-09-05)
- ·PHP多态性入门学习笔记与例子(2018-10-26)
- ·PHP多态代码实例(2021-06-04)
- ·PHP面向对象多态性实现方法简单示例(2021-08-09)
- ·PHP面向对象程序设计之多态性的应用示例(2021-11-02)
- ·PHP抽象类、接口与其应用例子(2014-09-22)
- ·PHP预定义接口使用学习笔记(2015-04-08)
- ·浅析php接口操作interface关键字的用法及应用实例(2015-04-15)
- ·php中接口、抽象类、Final、Static例子(2016-07-27)
- ·php接口和抽象类使用示例详解(2020-10-06)
- ·PHP面向对象的进阶学习(抽像类、接口、final、类常量)(2021-05-10)
- ·详细解读PHP中接口的应用(2021-06-16)
- ·PHP中抽象类、接口的区别与选择分析(2021-07-22)
- ·PHP面向对象五大原则之接口隔离原则(ISP)详解(2021-09-06)
- ·PHP面向对象程序设计之接口的继承定义与用法详解(2021-11-02)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)