php 实现抽象方法
实现抽象方法的基本概念
在PHP中,抽象方法是指在一个抽象类中声明但没有实现的方法。抽象方法必须在其子类中被具体实现。抽象类不能被实例化,只能被继承。

定义抽象类和抽象方法
抽象类使用abstract关键字定义,抽象方法同样使用abstract关键字声明,且不能有方法体。
abstract class AbstractClass {
abstract public function abstractMethod($param);
}
实现抽象方法
子类继承抽象类时,必须实现所有抽象方法,否则子类也必须声明为抽象类。实现的方法必须与抽象方法的签名一致(参数数量和类型)。
class ConcreteClass extends AbstractClass {
public function abstractMethod($param) {
echo "Implemented abstract method with parameter: $param";
}
}
注意事项
- 抽象方法的访问修饰符可以是
public、protected,但不能是private,因为子类需要实现这些方法。 - 子类实现抽象方法时,访问修饰符不能比抽象方法更严格(例如,抽象方法是
protected,子类实现可以是public或protected,但不能是private)。
完整示例
abstract class Animal {
abstract public function makeSound();
}
class Dog extends Animal {
public function makeSound() {
echo "Bark";
}
}
$dog = new Dog();
$dog->makeSound(); // Output: Bark
抽象方法与接口的区别
- 抽象类可以包含普通方法和属性,而接口只能包含方法声明。
- 一个类可以实现多个接口,但只能继承一个抽象类。
- 抽象方法可以有访问修饰符,接口方法默认是
public。







