因思维新建站官网:www.inspinovation.cn
文|何掌柜
昨天我们说了面向对象的基本概念,今天我们来说说面向对象的三大特征。
1、封装
封装性:封装性就是把对象的属性和行为结合成一个独立的单位。
封装一个类需要两步 第一步是私有化一个类 第二步是用set和get 做出读取赋值的操作
他的好处是:隐藏类的实现细节,可以方便加入逻辑控制性,限制对属性的不合理操作,便于修改增强代码的可维护性。
class Person{
public $name = ‘osman’;
private $sex = ‘sale’;
protected $age = ’26’;
// 构造方法 ,在类 实例化 时自动调用
public function __construct()
{
self::connect();
}
// 静态方法
static function connect()
{
echo ‘联系我’;
}
}
2、继承
B类的对象拥有A类的全部属性与行为,称作B对A类的继承。
假如一个类从多个类中继承了属性与服务,这称为多继承,通常我们成为继承类为子类被继承类为父类,
在PHP中只有单继承,但一个父类可以被多个类继承,但是一个子类只能有一个父类,但是允许关联继承,通过继承可以减化类的定义。
extende声明继承关系语法格式:class B extends A 此范例指明 B继承了A
class osman extends Person{
//继承
}
类的外部访问对子类是有效的
子类继承父类的所有内容,但父类中的private部分不能直接访问子类中新增加的属性和方法是对父类的扩展
子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖
重写的方法 在子类中,使用parent访问父类中的被覆盖的属性和方法
class osman extends Person{
parent::__construce();
parent::$name;
parent::fun();
}
对象比较===两个比较运算符。==是比较两个对象的内容。===是比较对象的 句柄 ,即引用地址。
instanceof 操作符用于检测对象实例是否属于某一个类 属于返回true 不属于返回false
__clone()如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法
function __clone(){
$this->name=”我是一个克隆人”;
}
3、多态
多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
就是说同一种方法在子类与父类中执行的结果不同
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){
$obj->info();
}
$a=new A(); $b=new B(); $c=new C();
printinfo($a); //输出A INFO
printinfo($b); //输出B INFO
printinfo($c); //输出C INFO
因思维新专注于高端网站订制开发,不仅仅为您建设网站,还为您做网络营销。