zoukankan      html  css  js  c++  java
  • 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;
    }
    }



  • 相关阅读:
    最长回文字符(需要补)
    无重复字符的最长子串
    两数之和——链表
    两个数之和
    android 动画基础绘——帧动画(三)
    android 动画基础绘——view 动画(二)[补]
    android 动画基础绘——view 动画
    全国疫情精准定点动态更新(.net core)
    桶排序
    计数排序
  • 原文地址:https://www.cnblogs.com/g825482785/p/extends.html
Copyright © 2011-2022 走看看