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.”
"; }

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

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

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

你可能感兴趣的:(PHP笔记之继承、重载、关键字)