В PHP можно ли расширить класс до того же имени?

Установка:

public interface Predicate<T> {
  public boolean filter(T t);
}

void filterCollection(Collection<T> col, Predicate<T> predicate) {
  for (Iterator i = col.iterator(); i.hasNext();) {
    T obj = i.next();
    if (predicate.filter(obj)) {
      i.remove();
    }
  }
}

использование:

List<MyObject> myList = ...;
filterCollection(myList, new Predicate<MyObject>() {
  public boolean filter(MyObject obj) {
    return obj.shouldFilter();
  }
});
12
задан hakre 21 June 2012 в 08:44
поделиться

3 ответа

Вы можете проверить classkit

-3
ответ дан 2 December 2019 в 05:28
поделиться

Если вы хотите использовать метод / свойство исходного класса, вы можете расширить его, но должны использовать другое имя, иначе вы получите сообщение об ошибке повторного объявления класса.

В основном:

class template {}

/* both fail with "cannot redeclare class template */

class template extends template {}

class template {}
1
ответ дан 2 December 2019 в 05:28
поделиться

Я почти уверен, что вы не можете. Я предлагаю вам сделать следующее:

class Template extends TemplateBase
{
    // code
}

подробнее на: http://www.php.net/manual/en/language.oop5.php

0
ответ дан 2 December 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: