总结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,就可以不实例化类而直接访问,但是这里格式是双冒号
?>