码迷,mamicode.com
首页 > Web开发 > 详细

PHP面向对象三大特性③

时间:2016-04-28 17:02:26      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:


 

今天学习了面向对象的第三个特性:多态

多态的概念:当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致了我们在使用该引用去调用相应的方法表现出的不同

发生多态的条件:1.必须存在继承关系

                      2.必须对子类的函数进行重写

class Ren
{
    public $name;
    public $sex;
    
    function Say()
    {
        echo "hello";
    }
    function __tostring()
    {
        return "这个对象包含变量name和sex,一Say 方法";
    }
    function __clone() //对象克隆的时候自动执行
    {
        $this->name="李四";//$this 指复本(克隆出来的新对象)
    }
}
class China extends Ren
{
    function Say()
    {
        echo "你好";
    }
    
}

另一个知识点:

函数重载 【了解,PHP中不存在,在强类型语言中比较重要】

重载条件:1.函数名必须相同

              2.函数参数个数不一样,如果个数相同,类型不同才能执行

function test ()      //不定义参数执行此函数
{
   echo "hello";     
}
function test ($eg)      //定义一个参数执行此函数
{
   echo "hello world";
}
function test ($eg,$eg1,....)   //定义一个或多个执行此函数
{
   echo "hello world everyday";
}

 


 

php为何不存在函数重载?

1.PHP是弱类型语言

2.PHP有可变变量的函数


对象的克隆:用clone关键字

$r=new Ren();
$r->name="张三";
$r1=clone $r;                                                            
echo $r1->name;   //显示李四
echo $r->name;     //显示张三

 

PHP面向对象三大特性③

标签:

原文地址:http://www.cnblogs.com/Itwonderful/p/5443175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!