• PHP 类的继承一些知识点汇总


    <?php
    //1.将类封装时,一般安全起见,多用于受保护属性protected来进行封装
    //2.子类调用父类的方法
    // (1).父类方法属性应采用public或受保护属性protected
    // (2).私有属性private 只能在本类中访问
    //3.子类不需要父类方法时 可进行重写的方法来进行覆盖
    //4.子类覆盖了父类方法或字段时,又要调用怎么办?
    // 调用方法 父类名::方法() or parent::方法()
    //5.final 关键字 可防止类被继承,独立的类不想被其他类集成使用时,必须使用这关键字,单独类,最好都加上这个关键字

    //关键字
    // 1.public 公共属性 类本身和子类都可访问
    // 2.private 私有属性 类本身可以访问
    // 3.protected 受保护属性 类本身和子类都可访问(一般封装时为了安全起见多用于这个属性)
    // 4.extends 继承(php不支持多层继承,一个类只能继承一个基类)




    header('content-type:text/html;charset="utf-8"');
    //定义一个父类
    class Computer
    {

    //public 公共属性,父类子类都可以调用
    //private 私有属性,无法被子类继承,此时就应用受保护的修饰来封装
    //protected 受保护属性 父类子类都可调用
    public $name = 'gaofei';

    //定义一个方法
    public function say()
    {
    return "my name is ".$this->name;
    }
    }

    //定义一个子类
    class NoteComputer extends Computer
    {
    //子类不需要父类的字段和方法,可采用重写的方法覆盖掉父类等等字段
    public $name = 'james';

    public function say()
    {
    echo Computer::say();
    echo "my name is ".$this->name;
    //调用已经被覆盖的父类方法
    }
    }

    //类的实例化
    $obj = new NoteComputer();
    //echo $obj->say();

    //加上关键字final 此时子类不能继承父类。
    final class Pad
    {
    public $data = '123';
    }

    class Pad_pro extends Pad
    {
    public function say()
    {
    return $this->data;
    }
    }



  • 相关阅读:
    B-树和B+树
    线程与内核对象的同步-2
    线程与内核对象的同步
    高级线程同步 临界区
    Levenshtein Distance (编辑距离) 算法详解
    平衡二叉树
    静态查找表
    C++中的容器类详解
    How do I list all tables/indices contained in an SQLite database
    SmartGit STUDY 2
  • 原文地址:https://www.cnblogs.com/g825482785/p/extends.html
Copyright © 2020-2023  润新知