访问控制修饰符指public、protected、private三个关键词来修饰类的成员属性和成员方法,可以有不同的权限
public:[共有的]类里面调用和类外面调用都是可以的
protected:[受保护的]类里面可以被调用,类外面不可以。
private:[私有的]类里面可以被调用,类外面不可以。
类的继承
继承就是对已有的类进行一个复用的使用。
继承之后可以自动拥有被继承的类的成员属性和成员方法
我们通常把被继承的类叫做父类(也叫做基类),继承别人的类叫做子类也叫做派生类
父类拥有的修饰符被继承的时候会有区别
一个父类可以被多个子类来继承
子类还可以继续被继承
继承具有传递性
语法
通过extends关键词来实现
访问修饰符在继承里面的权限问题
类内部 | 类外部 | 继承里面 | |
---|---|---|---|
public | 1 | 1 | 1 |
protected | 1 | 0 | 1 |
private | 1 | 0 | 0 |
继承遇到访问修饰符的权限问题
3 public
2 protected
1 private
当父类是public的时候,子类只能是public
当父类是protected的时候,子类可以是public、protected
当父类是private的时候,子类可以是public、protected、private
注意注意注意
所有的魔术方法都会被继承
所有的魔术方法都可以被重载
parent关键词
可以在子类中调用父类的构造方法
parent::__construct();
在子类中调用父类的方法
parent::say();
在子类调用父类的析构方法
parent::destruct();
final关键词
所有定义了final关键词的类都不能被继承
final class jilei
{
}
静态成员方法
可以不实例化类直接使用类名::方法名调用,用起来比较方便
如下使用
class Wan
{
public static $time = '1天';
public static function xxx()
{
//在类的内部调用静态成员属性使用[类名::属性]或者[self::属性],推荐在类的内部使用self
echo '在内部调用静态属性'.self::$time.'的方法,或者使用'.Wan::$time;
echo '这个是一个静态方法';
//在类的内部调用静态的成员方法同属性
self::yuKuai();
}
public static function yuKuai()
{
ehco '来来来,一起来玩吧';
}
}
//在类的外面调用静态的成员方法
Wan::xxx();
//在类的外面调用静态的成员属性,一定要加$符号
Wan::$time;