0

我正在开发一个 PHP 项目,我需要一些基础知识帮助。我有一个车辆类。在车辆类中有一个名为fuel_capacity 的变量。正如您所期望的,燃料容量因车辆而异。例如,燃料容量在汽车和卡车之间发生变化。我有一个 Car 类和一个 Truck 类,它们扩展了车辆类。

在建造汽车时,我想为 $fuel_capacity 赋值。当我这样做时,除非我将 $fuel_capacity 声明为 public,否则我无法从车辆内的函数中访问 $fuel_capacity。问题是如果我在 Car 类中声明 $fuel_capacity 公开,那么我担心它会与 Truck 类的 $fuel_capacity 冲突。这个对吗?如果是这样,我如何与父母分享 $fuel_capacity?

另外我想在我的 Car 类中使用一个构造函数类,然后它会覆盖我的 Vehicle 类构造函数。无论如何我可以调用例如在 Car 类中分配一个值,例如 $fuel_capacity,然后在 Vehicle 类的构造函数中使用该值?

最后有没有办法为从另一个类扩展的类设置接口?

我查看了很多页面,包括在 PHP 中使用普通函数和类方法有什么区别?,了解 php中的继承,了解 PHP 继承, 以及在 PHP 中使用普通函数和类方法有什么区别?. 这些都是很好的介绍,但它们没有解决这些问题。谢谢 :-)

4

1 回答 1

3

您需要真正了解 OOP 的工作原理以及它是如何在 PHP 中实现的。 http://php.net/oop应该可以提供帮助。

这是一种方法。您当然可以在构造函数中设置燃料容量。我建议Vehicle成为一个abstract班级,因为您不希望有人创建一个Vehicle对象。

如果你继承当然你可以从Car/Trunk类中访问变量,因为它被声明为受保护。

abstract class Vehicle {
    public function setFuelCapacity($capacity) {
        $this->fuel_capacity = $capacity;
    }

    protected $fuel_capacity;
}

class Car extends Vehicle {
}

class Truck extends Vehicle {
}

希望有帮助。

于 2012-05-17T03:50:05.620 回答