php oop思想的三大特性分别为:封装,继承以及多态,在这里,我将具体的和大家说一下对php opp思想的理解,那么,接下来我们就来具体的看一看opp思想的三大特征及php opp思想。
封装性
封装性就是把对象的属性和行为结合成一个独立的单位。
封装一个类需要两步 第一步是私有化一个类 第二步是用set和get 做出读取赋值的操作
他的好处是:隐藏类的实现细节,可以方便加入逻辑控制性,限制对属性的不合理操作,便于修改增强代码的可维护性。
__get与__set
一般说把类私有话更符合现实的逻辑。
预定义两种函数来进行获取与敷值操作。
__get 获取值通常是域的值
__set 设置值通常是域的值
__call 调用一个对象中不存在的方法时,就会产生错误call()这个方法来处理这种情况。
静态属性和方法
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思想的三大特点介绍的详细内容。