我正在开发一个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 php,Understanding PHP Inheritance和What's the difference between using normal functions and class methods in PHP?。这些都是很好的介绍,但他们没有解决这些问题。谢谢: - )
答案 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 {
}
希望有所帮助。