当前位置:  首页>> 技术小册>> PHP面试指南

答案:

继承是一种面向对象的编程技术,它允许一个类(子类)从另一个类(父类)继承属性和方法。通过继承,子类可以重用父类的代码,并且可以根据需要添加新的功能。

在PHP中,使用 extends 关键字来实现类的继承。例如:

  1. class Animal {
  2. public function makeSound() {
  3. echo "Animal is making a sound.";
  4. }
  5. }
  6. class Cat extends Animal {
  7. public function makeSound() {
  8. echo "Meow!";
  9. }
  10. }

在上面的例子中,Cat 类继承了 Animal 类,可以使用 makeSound() 方法,并覆盖(重写)该方法,使其输出 Meow!。

多态是面向对象编程中的另一个重要概念,它允许使用同样的方法名调用不同的对象,并根据对象的类型执行不同的操作。多态可以提高代码的可读性和可维护性,使代码更加灵活和可扩展。

在PHP中,多态可以通过继承和接口来实现。例如:

  1. interface Shape {
  2. public function getArea();
  3. }
  4. class Rectangle implements Shape {
  5. private $width;
  6. private $height;
  7. public function __construct($width, $height) {
  8. $this->width = $width;
  9. $this->height = $height;
  10. }
  11. public function getArea() {
  12. return $this->width * $this->height;
  13. }
  14. }
  15. class Circle implements Shape {
  16. private $radius;
  17. public function __construct($radius) {
  18. $this->radius = $radius;
  19. }
  20. public function getArea() {
  21. return pi() * pow($this->radius, 2);
  22. }
  23. }

在上面的例子中,Shape 接口定义了一个 getArea() 方法,Rectangle 和 Circle 类实现了这个接口,并实现了自己的 getArea() 方法。当我们需要计算一个形状的面积时,可以通过多态来调用这个方法,例如:

  1. $shapes = [
  2. new Rectangle(10, 20),
  3. new Circle(5),
  4. ];
  5. foreach ($shapes as $shape) {
  6. echo $shape->getArea();
  7. }

在上面的例子中,$shapes 数组包含了一个 Rectangle 对象和一个 Circle 对象,但是在循环中,我们只需要调用每个对象的 getArea() 方法来计算它们的面积,而不需要知道对象的具体类型。这就是多态的作用。


该分类下的相关小册推荐: