Удаление / переопределение инструкций конструктора (PHP) - PullRequest
0 голосов
/ 23 марта 2020

Я узнал, что могу использовать конструктор родителя в PHP с ParentClass::__construct();. Я представляю, что это невозможно, но я хочу быть уверен; я могу переопределить или удалить аспект скопированного конструктора? Другими словами, если конструктор родителя был

public function __construct(){
  print "This is from the parent class";
  test();
}

public function test(){
  print "Remove this function when copying to child class";
}

, есть ли способ, которым я могу

public function __construct(){
  ParentClass::__construct();
  //override/remove/negate test() function in the copied construct.
}

1 Ответ

1 голос
/ 23 марта 2020

Прямо сейчас, ваша структура объекта выглядит следующим образом:

class ParentClass {
  public function test(): void {}
}

class ChildClass extends ParentClass {
  // This class has access to test() through inheritance
}

Что вы могли бы иметь вместо этого:

class BaseClass { 
  // Here, have everything that's actually common between all subclasses
}

class ClassA extends BaseClass {
  public function test(): void {}
}

class ClassB extends BaseClass {
  // This class does not have access to test()
}

Вы также можете смешивать в некоторых интерфейсах, но это основа c идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...