задача: создать такой экземпляр класa Ship, чтобы он имел методы fly() и Shoot(), определенные в классах Weapons и Engines, свойство mass, определенное в классах Weapons и Engines, а Weapons и Engines могли пользоваться свойством ID (типа parent::$ID)
объекта Ship, определенное в его конструкторе.
По-моему должно получиться что-то вроде:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class Ship {
- public $ID, $mass = 0;
- function Ship ($ID) {
- $this->ID = $ID;
- }
- }
- class Engines extends Ship {
- function Engines () {
- parent::$mass += 10;
- }
- function fly () {
- echo "ship ".parent::$ID." flying\n";
- }
- }
- class Weapons extends Ship {
- function Weapons () {
- parent::$mass += 20;
- }
- function shoot () {
- echo "ship ".parent::$ID." shooting\n";
- }
- }
- $ship1 = new Ship (1);
- $ship2 = new Ship (2);
- $ship1->shoot(); //нужный результат: ship 1 shooting
- $ship2->fly(); //нужный результат: ship 2 flying
- echo $ship1->mass; //нужный результат: 30