zoukankan      html  css  js  c++  java
  • PHP面向对象三大特性③


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

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

    发生多态的条件: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;     //显示张三
  • 相关阅读:
    谈谈vertical-align的text-bottom和text-top
    【golang】代码学习
    【golang】json相关:unmarshal
    【tidb】相关的调研
    【php】sort函数整理
    【hive学习笔记1】-开始
    python2和python3区别
    python: 类型转换(int,long,float->string)
    【java】查找应用程序的资源
    【java】已经学习的部分
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5443175.html
Copyright © 2011-2022 走看看