继承和静态方法属性和常量

<?php
//这是父类
// class father{
//     public $i='人';//共有的在哪里都可以访问,不写就默认是这个
//     // protected $i = '人';//这个是受保护的只能在自己类和子类中访问
//     // private $i = '人';//这个是私有的只能在自己当前类中访问
//     function aa(){
//         echo'head';
//     }
// }
// // 这是子类 通过extends来继承父类的属性和方法
// class son extends father{
//     var $ii = "男人";
//   function aa(){//在子类重新定义一个和父类相同的方法名就把父类的覆盖了
//       echo"方法重写";
//      echo $this->i;
//   }
// }
// $n = new son();
// $n->aa();

// 定义接口  这个接口的意思只是规定创建类里面方法的名称
// interface a{
//     public function aa();//接口里的方法必须的公有的
// }
// // 定义类
// class z implements a{//通过implements来和接口相接
//     public function aa(){//只要与接口相接就必须写接口里的方法
//         echo "aaa";
//     }
// }
// $n = new z();
// $n->aa();

//抽象类   abstract关键词
abstract class a{
   public static $t='父类';
    abstract protected function m();//抽象方法主要用作继承给子类
    public function aa(){
        echo 'aaa';
    }
}
class b extends a{
    const k='常量';//类中定义常量
    public static $z='bb';//定义静态属性 关键词static来定义静态方法和属性
    function m(){//必须有抽象类里面的方法 而且访问权限相等或者比他大
        echo 'c方法'.self::k;//在类中调用静态常量用self
    }
    public static function i(){//这是静态方法
        echo '静态方法'.parent::$t; //调用父类中的静态属性
    }
    
}
// 静态方法或者属性可以不用实例化就可以输出
echo b::k;//输出静态方法或者属性还有常量用::
echo b::$z;
echo b::i();
// $n = new b();
// $n->m();




?>
原文地址:https://www.cnblogs.com/sheep-fu/p/13153418.html