• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP面向对象编程学习之二_php

php 搞代码 7年前 (2018-06-21) 117次浏览 已收录 0个评论

接口

接口就是把不同类的共同行为经行了定义,然后在不同的类里面实现不同功能。当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类interface就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :

多态
因为接口的实现方法可以有很多,所以对于接口里面顶一顶方法的具体实现是多种多样,这种特性称为多态。多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为。
PHP不支持重载实现多态,但是PHP可以变向的实现多态效果。
案例一:

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");//这里传入的是 NormalUser的实例. echo $normalUser->getName(); ?>

案例二:

抽象类
抽象类是介于接口与类的定义之间

http://www.gaodaima.com/51456.htmlPHP面向对象编程学习之二_php

PHP5支持抽象类和抽象方法。抽象类不能直接被实例化,你必须先继承该抽象类,然后再实例化子类。抽象类中 至少要包含一个抽象方法。如果类方法被声明为抽象的,那么其中就不能包括具体的功能实现。
继承一个抽象类的时候,子类必须实现抽象类中的所有抽象方法;另外,这些方法的可见性 必须和抽象类中一样(或者更为宽松)。如果抽象类中某个抽象方法被声明为protected,那么子类中实现的方法就应该声明为protected或者public,而不 能定义为private。

getValue() . " ";     } }  class ConcreteClass1 extends AbstractClass {     protected function getValue() {         return "ConcreteClass1";     }      public function prefixValue($prefix) {         return "{$prefix}ConcreteClass1";     } }  class ConcreteClass2 extends AbstractClass {     public function getValue() {         return "ConcreteClass2";     }      public function prefixValue($prefix) {         return "{$prefix}ConcreteClass2";     } }  $class1 = new ConcreteClass1; $class1->printOut(); echo $class1->prefixValue('FOO_') ." ";  $class2 = new ConcreteClass2; $class2->printOut(); echo $class2->prefixValue('FOO_') ." "; ?>

欢迎大家阅读《PHP面向对象编程学习之二_php,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP面向对象编程学习之二_php
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址