PHP笔记之继承、重载、关键字

继承

1.子类使用extends继承父类,可以将父类所有内容继承过来
2.private 只能自己用,子类都无法使用
3.protected这个是保护的权限,只能是自己和自己的子类使用的成员,外部不可使用
4.public 公开

重载

继承中的重载(覆盖):在子类中可以写和父类同名的方法
parent::访问父类中被覆盖的方法
重要:只要是子类的构造方法,去覆盖父类中的构造方法,一定要在子类的最上面调用一下父类被覆盖的方法
权限问题:子类只能大于或等于父类的权限,不能小于

class Person {
        var $name;
        var $age;
        var $sex;
        
        function __construct($name,$age,$sex){
            $this -> name  = $name;
            $this -> age = $age;
            $this -> sex = $sex; 
        }
        function say(){
            echo "我的名字是:{$this->name}我的性别是:{$this->sex}";
        }
        function eat(){
        }
        function run(){
        }
    }
    class Student extends Person{
        var $school;
        function__construct($name,$age,$sex,$school){
    parent::__construct($name,$age,$sex,$school);
            $this->school = $school;
        }           
        function study(){
        }
        //重载
        public function say(){
            parent::say();
            echo "我在的学校";
        }
    }
    class Teacher extends Person{
        var $name;
        var $age;
        var $sex;
        var $dw;    
        function teach(){
        }
    }

关键字

1.instanceof 对象是不是某个类
2.在PHP中,final不定义常量,所以不能使用final修饰成员属性
①final可以修饰类 ---这个类不能去扩展,不能有子类,也就是最终的类
②final可以修饰方法---这个方法,就不能在子类中覆盖
3.static可以修饰属性和方法,不能修饰类,
①使用static修饰成员属性,存在内存的初始化静态段。
②可以被所有同一个类的对象使用
③第一个用到类(类名第一次出现),类在加载到内存时,就已经将静态的成员加到了内存
④静态的成员一定要用类来访问

Person::$country;

⑤.self可以在类中的方法中,代表自己的类
⑥脚本一旦加载,直到脚本释放才结束
⑦在静态的方法中,是不能访问非静态的成员的
⑧只要是能使用静态的环境下声明方法,就最好使用静态方法效率

static function say(){
    echo"我的名字是:“self::$name.”<br>";
}

4.const
常用define定义常量
define("常量名","值");
const 修饰的成员属性为常量,只能修饰成员属性

类中
1.常量建议使用大写,不能使用$
2.常量一定要在声明时就给好初值
3.常量的访问方式和static的访问方式相同,但只能读
①在类外部使用 类名::常量名
②在类的外部使用 self::常量名

  class Demo{
        const SEX = "男";
        static function say(){
          echo self::SEX."<br>";
   }
  }
  Demo::say();
//echo Demo::SEX;

推荐阅读更多精彩内容

  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 338评论 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,462评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,948评论 18 399
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 939评论 0 4
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,042评论 0 5