PHP中的关键字public、protected、private、static、abstract、final、interface、implements用于定义类和成员的访问权限和特性。它们的区别如下:
public
被定义为公有的类成员可以在任何地方被访问。protected
被定义为受保护的类成员则可以被其自身以及其子类和父类访问。private
被定义为私有的类成员则只能被其定义所在的类访问。static
- static 静态修饰符 : 用于修饰类的成员属性和成员方法 。
- static 关键字: 修饰的成员方法称为静态方法,修饰的成员属性称为静态属性。
abstract
- 抽象类中的成员方法没有方法体,以 (); 结束。
- 该类不能被实例化
- 若想使用抽象类,就必须定义一个类去继承这个抽象类,并定义覆盖父类的抽象方法(实现抽象方法)。
final
- 类使用时: 如果类使用 final关键字修饰时 ,表示这个类不可以有子类,即不能被 继承
- 成员方法使用时: 如果成员方法 使用 final 关键字修饰时,表示这个成员方法不可以在子类中被覆盖,即不能被 重写。
interface
- 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
- 接口中定义的所有方法都必须是公有,这是接口的特性。
implements
- 要实现一个接口,使用 implements 操作符。
- 类中必须实现接口中定义的所有方法,否则会报一个致命错误。
- 类可以实现多个接口,用逗号来分隔多个接口的名称。
- 实现多个接口时,多个接口的方法名不能重名
- 接口也可以继承,通过extends操作符
- 类要实现接口,必须使用和接口中所定义的方法完全一致的方式(包括方法名称、参数数量和类型等都必须一致)。否则会导致致命错误。
总结:
- 访问权限关键字(
public
、protected
、private
)用于控制成员的访问范围。 - 静态关键字(
static
)用于定义静态成员,可以通过类名直接访问。 - 抽象关键字(
abstract
)用于定义抽象类和抽象方法。 - 最终关键字(
final
)用于定义最终类或最终方法,不能被继承或重写。 - 接口关键字(
interface
)用于定义接口,规定了一组方法的规范。 - 实现关键字(
implements
)用于类实现接口,实现接口中定义的方法。