PHP变量,类和继承理解基础知识

时间:2012-05-17 03:40:01

标签: php class variables inheritance

我正在开发一个PHP项目,我需要一些基础知识的帮助。我有一个车辆类。在车辆类别中有一个名为fuel_capacity的变量。正如您所料,燃料容量会随车辆而变化。因此,例如,汽车和卡车之间的fuel_capacity变化。我有一个Car类和一个卡车类来扩展车辆类。

在建造汽车时,我想为$ fuel_capacity分配一个值。当我这样做时,除非我声明$ fuel_capacity公开,否则无法从车内的功能访问$ fuel_capacity。问题是如果我在Car类声明$ fuel_capacity public然后我担心它会与Truck类的$ fuel_capacity冲突。它是否正确?如果是这样,我如何与父母共享$ fuel_capacity?

此外,我想在我的Car类中使用构造函数类,然后这将覆盖我的Vehicle类构造函数。反正我是否可以调用例如在Car类中赋值$ fuel_capacity,然后在Vehicle类的构造函数中使用该值?

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

我查看了许多页面,包括What's the difference between using normal functions and class methods in PHP?Understanding inheritance in phpUnderstanding PHP InheritanceWhat's the difference between using normal functions and class methods in PHP?。这些都是很好的介绍,但他们没有解决这些问题。谢谢: - )

1 个答案:

答案 0 :(得分: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 {
}

希望有所帮助。