抽象类(abstract class)是一种不能被实例化的类,只能被继承。抽象类可以包含抽象方法(没有具体实现的方法)和具体方法(有具体实现的方法)。子类必须实现抽象类中的所有抽象方法。
接口(interface)是一种定义了一组方法的类似协议的结构。接口中的方法没有具体的实现,只有方法的声明。类可以实现一个或多个接口,实现接口的类必须实现接口中定义的所有方法。
final关键字用于修饰类、方法或属性,表示它们不能被继承、重写或修改。final类不能被继承,final方法不能被重写,final属性不能被修改。
类常量(class constant)是类中定义的不可修改的常量。类常量使用const关键字定义,一旦定义后不能被修改。类常量可以通过类名访问,不需要实例化类。
下面是一个示例代码:
abstract class Animal {
abstract public function makeSound();
}
class Dog extends Animal {
public function makeSound() {
echo "Woof!";
}
}
interface Vehicle {
public function start();
public function stop();
}
class Car implements Vehicle {
public function start() {
echo "Car started.";
}
public function stop() {
echo "Car stopped.";
}
}
final class Math {
const PI = 3.14;
}
echo Math::PI; // 输出3.14
在上面的代码中,Animal是一个抽象类,定义了一个抽象方法makeSound。Dog是Animal的子类,必须实现makeSound方法。
Vehicle是一个接口,定义了start和stop方法。Car类实现了Vehicle接口,并实现了接口中的所有方法。
Math是一个final类,不能被继承。它定义了一个类常量PI,可以通过类名直接访问。
最后,输出Math类中的常量PI的值为3.14。
上一篇:php入门教程之面向对象
下一篇:PHP5面向对象详解 - (10) __set() __get() __isset() __unset()四个方法
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站