首页 > 编程 > PHP > 正文

php oop的特性是什么?php oop思想的三大特点介绍

2020-03-22 20:29:37
字体:
来源:转载
供稿:网友
php oop思想的三大特性分别为:封装,继承以及多态,在这里,我将具体的和大家说一下对php opp思想的理解,那么,接下来我们就来具体的看一看opp思想的三大特征及php opp思想。
封装性

封装性就是把对象的属性和行为结合成一个独立的单位。
封装一个类需要两步 第一步是私有化一个类 第二步是用set和get 做出读取赋值的操作
他的好处是:隐藏类的实现细节,可以方便加入逻辑控制性,限制对属性的不合理操作,便于修改增强代码的可维护性。

__get与__set
一般说把类私有话更符合现实的逻辑。
预定义两种函数来进行获取与敷值操作。
__get 获取值通常是域的值
__set 设置值通常是域的值
__call 调用一个对象中不存在的方法时,就会产生错误call()这个方法来处理这种情况。

静态属性和方法
html' target='_blank'>static关键字 来声明静态方法
static静态变量 在类的内部生成一个静态变量 就是能够被所有类的实力化共想 也就是说静态成员则放到了“初始化静态段”,在类第一次被加载的时候放入的,可以让堆内存里面的每个对象所共享
使用方法:self::$静态属性、self::静态方法

static function p(){echo self::$country;echo self::PI;//访问常量//echo $this- name;在静态方法中只能操作静态属性//self::p();}

外部调用:类::$静态属性、类::静态方法

const关键字:用来生成常量 常量是唯一的不能改变的 惯例常量为大写
const CONSTANT = constant value 生成一个常量
echo self::CONSTANT;//类内部访问
echo ClassName::CONSTANT;//类外部访问

继承性
B类的对象拥有A类的全部属性与行为,称作B对A类的继承。
假如一个类从多个类中继承了属性与服务,这称为多继承,通常我们成为继承类为子类被继承类为父类,在PHP中只有单继承,但一个父类可以被多个类继承,但是一个子类只能有一个父类,但是允许关联继承,通过继承可以减化类的定义。
extende声明继承关系
语法格式:class B extends A 此范例指明 B继承了A
类的外部访问对子类是有效的
子类与父类的属性与方法
子类继承父类的所有内容,但父类中的private部分不能直接访问
子类中新增加的属性和方法是对父类的扩展
子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖

重写的方法
在子类中,使用parent访问父类中的被覆盖的属性和方法
parent::__construce();
parent::$name;
parent::fun();

覆盖父类原有属性
clone克窿对象 语法格式$c=clone $p; $c克窿的对象$p 输出echo $c- name;

对象比较
===两个比较运算符。
==是比较两个对象的内容。
===是比较对象的句柄,即引用地址。

instanceof操作符用于检测对象实力是否属于某一个类的类型 属于返回true 不属于返回false
__clone()如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法

function __clone(){$this- name= 我是一个克隆人 }

final表示一个类是最终版本 也就是说它不能在被子类调用

多态性

多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
就是说同一种方法在子类与父类中执行的结果不同。

class A {function info(){echo “A INFO”;class B extends A {function info(){echo “B INFO”;class C extends A {function info(){echo “C INFO”;function printinfo($obj){function printinfo(A $obj){if($obj instanceof A)$obj- info();$obj- info();$a=new A(); $b=new B(); $c=new C();printinfo($a); //输出A INFOprintinfo($b); //输出B INFOprintinfo($c); //输出C INFO

抽象方法和抽象类

抽象方法是作为子类摸版使用的。

abstract class Person{public $name;abstract function getInfo();}

抽象类不能被实力话,一个抽象类中,必须有一个抽象方法。但是抽象类中可以定义动态函数。
接口
当一个类继承了一个接口之后,它要覆盖接口的所有方法,接口只能声明常量,接口的方法必须定义为共有否则无法继承,接口可以与多个接口间继承
语法:

interface PCI{const TYPE= PCI //public $name; errorfunction start();function stop();接口中的方法可以声明为staticinterface A{ function a();}interface B{ function b();}interface C extends A{ function c();}class D implements B,C{function a(){}function b(){}function c(){}}

相关推荐:

PHP OPP机制和模式简介(抽象类、接口和契约式编程)_php实例

以上就是php oop的特性是什么?php oop思想的三大特点介绍的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表