php-面向对象(4)
来源:互联网 发布:windowsvps搭建数据库 编辑:程序博客网 时间:2024/06/06 17:20
1.回顾:上篇学习了类常量,构造函数和析构函数
2.这篇将学习 抽象类(abstract), 接口 (interface), 特征 (traits)
3.访问控制
(1)对属性和方法的访问控制是通过前面添加关键字public,protected,private来实现的
(2)如果没有设置这些关键字,该方法默认为public
4.抽象类 :
重点:
(1)php5支持抽象类和抽象方法 (2)抽象类不能被实例化,你必须继承该抽象类,在实例化子类 (3)抽象类至少包含一个抽象方法 (4)如果类方法被声明为抽象的,那么其中不能包括具体的功能实现 (5)继承一个抽象类的时候,子类必须实现抽象类中的所有抽象方法 (6)子类中的方法的可见性必须和抽象类一样,抽象方法为 protected ,那么子类实现的方法应该声明为
protected或public (7)抽象类的子类中的普通方法执行方式和其他类相同
//抽象类 abstract class aclass{ //抽象方法 abstract protected function getValue(); abstract protected function setValue($val); //普通方法 public function printOut(){ $this->getValue(); } } class bclass extends aclass{ protected function getValue(){ return "bclass"; } public function setValue($val){ return $val." bclass"; } } //实例化子类 $b=new bclass(); $b->printOut(); echo $b->setValue("LABELNET ");
5.接口 interface
(1)可以知道某个类实现那些方法,但不需要定义这些方法的具体内容 (2)定义的所有方法都是空的 (3)接口中定义的所有方法都必须是public,这是特性 (4)实现接口,可以使用implements 操作符 (5)类中必须实现接口中定义的所有方法,否则会报fatal错误 (6)实现多个接口,使用逗号分隔多个接口的名称 (7)多个接口是,接口中方法名,不能重名 (8)接口也可以继承,使用extends操作符
interface cclass{ public function setVal($name,$vale); public function getVal(); } class dclass implements cclass{ private $val=array(); public function setVal($name,$vale){ $this->val[$name]=$vale; } public function getVal(){ return $this->val; } } $d=new dclass(); $d->setVal("user","LABELNET"); var_dump($d->getVal());
6.特征 traits
6.1 重点
(1)php5.4 实现了代码复用的方法 (2)特点是单继承的代码重用机制,是开发人员重复使用方法 (3)降低了类的复杂度 (4)不能对自己实例化
6.2 使用
(1)从基类继承的成员是由成员的特征去重写 (2)成员从当前类重写特性方法,
#从基类继承的成员是由成员的特征去重写 #成员从当前类重写特性方法, class base{ public function say(){ echo " <br> base say() <br>"; } } trait eclass{ //重写base的say方法 function say(){ parent::say(); echo "hi efun1 <br>"; } } class fclass extends base{ //通过 特征调用 use eclass; } $f=new fclass(); $f->say();
6.3 使用多个 trait时 ,使用逗号隔开
trait HelloWorld{ public function sayHello(){ echo "Hello World"; } } class thisHi{ use HelloWorld; public function sayHello(){ echo "HI world"; } } $hi=new thisHi(); $hi->sayHello();
下篇:将学习 PHP 类与对象 之 重载
0 0
- php-面向对象(4)
- 面向对象(php)
- php面向对象教程4
- php面向对象详解4
- 认真学习php面向对象-4
- php面向对象(基础)
- php-面向对象(1)
- php-面向对象(2)
- php-面向对象(3)
- php-面向对象(5)
- php-面向对象(6)
- 面向对象PHP(一)
- 面向对象PHP(二)
- 面向对象PHP(三)
- 面向对象PHP(四)
- 面向对象PHP(五)
- php面向对象(一)
- php面向对象(二)
- iOS 开发常用框架以及相关学习资料集合--不断更新
- 58 - 二叉树的中序遍历的下一个节点
- Appium - WebView测试(Android)
- Java学习——Servlet是什么
- 关于neutron router-update在server端执行流程
- php-面向对象(4)
- [leetcode] Palindrome Linked List
- 文章标题
- 使用AccessibilityService实现微信自动抢红包
- hdu 5319 Painter
- linux grep命令
- HDU 1232 畅通工程 并查集
- Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file
- SparkR with Rstudio in Ubuntu 12.04