наследование — присваивайте родительские переменные в дочернем классе как переданный экземпляр в переполнении стека

Привет товарищ программист,

я хочу передать экземпляр родительского класса конструктору childs, и вместо того, чтобы давать каждому члену родительского элемента дочерний элемент, я подумал, что может быть более простой способ назначить родительский элемент сразу. Вот моя мысль.

class Human {
public $health = "200";
public function __construct( $health ) {
$this->health = $health;
}
}

class Monster extends Human {
public function __construct( \Human $human ) {
parent::$this = $human;
}
}

$unit = new \Monster( new \Human );

Возможно ли что-то подобное или даже что-то подобное вместо этого:

class Monster extends Human {
public function __construct( \Human $human ) {
$this->health = $human->health;
}
}

0

Решение

Один из способов сделать это (но не использовать наследование) — посмотреть на создание «гуманизированной» функции, которая добавляет данные / функции в ваш класс следующим образом:

const humanize = (WrappedComponent, health) => {
let w = new WrappedComponent();
w.health = health;
w.getHealth = function() {
return this.health;
}
return w;
}

class Monster {
}

const monster = humanize(Monster, 200);
console.log(monster.getHealth());

Это позволяет вам «гуманизировать» любой класс / объект, который вам нравится; когда вы делаете это, он добавляет член здоровья и функцию getHealth.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector