总结6.17php的继承和类

<?php

class preson{
    public $a = 'ren';
    //所有地方都可以访问得公有变量
    protected $b = 123;
    //受保护,只有自己和子类可以对其访问
    private $c = '空';
    //私有,外部无法进行访问
    function b(){
        echo 'ren';
    }
class preson1 extends preson{
    function b(){
        echo $this->a;
        echo $this->b;
        //echo $this->c;
    }
    //子类对父类的继承,可以改写方法,这里$c无法访问和输出
}
$a = new preson1;
$a->b();

interface l{
    function aa();
}
//接口的定义,接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
class k implements l{
    function aa(){
        echo 'sdgg';
    }
    //接口的运用,使用 implements 操作符,类中必须实现接口中定义的所有方法,否则会报一个致命错误。
}
$a = new k();
$a->aa();
abstract class i{
    abstract protected function aa();
}
//定义抽象类,任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),
//不能定义其具体的功能实现
class ii extends i{
    protected function aa(){
        echo 'aaa';
    }
}//继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)
class cc{
    const ss = '常量值';
    function showConstant() {
        echo  self::ss;
    }}
    echo cc::ss;
    //声明类属性或方法为static,就可以不实例化类而直接访问,但是这里格式是双冒号
?>