php 面向对象的三大特性

三大特性是:封装,继承,多态  

所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。


所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

<?php
header("Content-type:text/html;charset=utf-8");
/*封装
目的:为了使类更加安全
做法:
1.将成员变量变成私有
2.做一个成员方法来间接访问
3.在该方法里面加限制条件

450147805

class Ren
{
    private $age;    //public (公有) private (私有)  18s岁-50岁之间
    

    function setAge($n)
    {   if($n>=18 && $n<=50)
     {
       $this->Age = $n;    
    }
     }
       function getAge()
       {
        return $this->age;   
       }
}


class Ren
{
    private $age;
    private $name;
    function __set($n,$v){
        if($v>=18 && $v<50){
            
        $this->$n = $v;
        }
        else{
            
        $this->$n = $v;    
            
        }
    }
    }
    


$r = new Ren();
$r->setName("张三");
var_dump($r);
echo $r->getname();

$r = new Ren;
$r->__set("age",20);
$r->name = ("张三");
var_dump($r);*/

//继承
//子类可以继承父类的一切
//
//
class Ren{
    private $name;
    function Run()
    {
        echo "跑步";
    }
}    

class Nan extends Ren   ( extends  =继承)
{
    function Run()
    {
        parent ::Run();//
        echo "洗澡";
    }
}

$c = new Nan();
$c->Run();    


?>

原文地址:https://www.cnblogs.com/Liangbingbing/p/6735260.html