PHP面向对象(OOP)----访问限制符

时间:2021-07-27 09:48:44

访问控制修饰符指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;