zoukankan      html  css  js  c++  java
  • 继承和多态

    /*class Info
    {
    const p =10; //将某些常用的常量表示出来,出了类访问不到
    public static $class; //定义为静态的
    public $code;
    protected $name;
    private $sex;

    static function Test() //静态方法
    {
    echo self::$class; //代表该类,调用自身类里边的静态成员
    echo "jtff";
    }
    function Say()
    {

    echo self::$class; //普通方法里边可以调用静态成员
    echo "hello";}

    /*function __set($n,$y)
    (
    $this->$n = $y;
    )*/


    //2.继承:
    //概念:如果一个类有子类,他会继承父类的一切东西,私有成员访问不到
    //定义子类的时候需要加关键字:extends
    //特点:单继承,一个儿子只能有一个父亲,一个类只能有一个父类
    //如果父类中有构造函数,子类在实例化时要按照父类的标准来做
    //子类对父类方法的重写,在子类中写一个同样的方法
    //final: 用来修饰类,代表该类是一个最终类,无法被继承


    /*class Test extends Info
    {
    public $birthday;

    function Run()
    {
    echo "run";
    }
    function Say()
    {
    parent::Say(); //调用父类的say方法
    echo "world<br>";
    }
    }
    $t = new Test();
    /*Info::$class = "0305";
    $t->code = "p001";*/
    /*$t->Say();
    //$t->Run();
    var_dump ($t);
    echo Info::p;*/

    //静态成员
    //普通成员是属于对象的,不是属于类的,调用的时候用对象调用
    //什么叫静态成员:属于类的不是属于每个对象的,
    //定义静态成员由static关键字修饰
    //静态方法里边无法调用普通成员,可以调用静态成员,使用关键字:self
    //self代表该类,$this代表该对象

    /*Info::$class = "0305"; //访问静态成员用::

    echo Info::$class;
    Info::Test();*/

    class Ren
    {
    public $name;
    public $sex;
    function Say()
    {
    echo "hello";
    }
    function __tostring() //输出类里面的一些描述
    {
    return "这个类包含变量name和sex";}
    function __clone() //对象克隆的时候自动执行
    {
    $this->name = "李四"; //$this指克隆出来的新对象

    }
    }
    class China extends Ren
    {
    function Say()
    {
    echo "你好";
    }
    }

    //多态
    //当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致了我们在使用该引用去调用相应方法表现的不同
    //发生条件:1.必须要继承
    //2.父类引用要指向子类的实例~~~~~~~~~~~~~
    //2.子类必须对父类的方法进行重写

    //$r = new Ren(); //代表Rene的引用

    //$r1 = new China(); //代表China的引用

    //函数重载
    //条件:1.函数名必须相同;2.函数里面参数的个数不同,如果个数相同,类型不同也可形成重载

    //__tostring()方法

    //对象的克隆
    $r = new Ren();
    $r->name = "张三";
    $r1 = clone $r; //clone克隆对象
    var_dump($r1);

  • 相关阅读:
    HTML5实现音频播放
    百度编辑器UEditor常用设置函数大全
    .Net一般处理程序来实现用户名的验证
    软件设计师13-数据库设计
    软件设计师12-数据流图
    百度云BCC安装WordPress镜像
    Java获取客户端真实IP地址
    软件设计师11-面向对象技术
    百度云BCC主机宝镜像
    软件设计师10-系统开发模型
  • 原文地址:https://www.cnblogs.com/1116zsc/p/5453744.html
Copyright © 2011-2022 走看看