多态

多态
1.必须发生在继承下
2.子类对父类的方法进行重写

Class Ren
    {
        public $name;
        public function Say()
        {
            echo $this->name."正在说话";
            
            }
        function __construct($n)
        {
            $this->name=$n;
            }
    
    //子类
        class China extends Ren
        {
            public function Say()
            {
                echo "你好";
                }
            
            }

    //父类引用指向子类实例,由于子类的不同,父类引用在调用方法时所表现出的差别
    
    $ren =new China("");  //继承自父类,父类里面有一个function 里面必须有参数
    $ren->Say();

function __tostring()//提供一个可以返回类里面信息的方法:

Class Ren
    {
        public $name;
        public function Say()
        {
            echo $this->name."正在说话";
            
            }
        function __construct($n)
        {
            $this->name=$n;
            }
        
        function __tostring()        //提供一个可以返回类里面信息的方法
        {
            return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。";
            }
        }
        
        $ren=new Ren("aa");    
        echo $ren;

完全克隆对象:

    function __tostring()        //提供一个可以返回类里面信息的方法
        {
            return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。";
            }
        }
        
        $ren=new Ren("aa");    
        $r1=clone $ren;
        var_dump($r1);
        
        echo $ren;

改变克隆对象的默认值:

    
        function __tostring()        //提供一个可以返回类里面信息的方法
        {
            return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。";
            }
            
            function __clone()    //写在类里面,用克隆的时候自动调用
            {
                $this->age=18;    
                }
            
        }

原文地址:https://www.cnblogs.com/zhanghaozhe8462/p/5304929.html