|
|
|
| друзья, подскажите, а возможно ли в php наследование одним классом нескольких.
я хочу узнать не о таком наследовании:
class1=>class2=>class3=>megaclass
а о таком
class1=>megaclass
class2=>megaclass
class3=>megaclass
|
| |
|
|
|
|
|
|
|
для: Lelik
(11.04.2008 в 15:36)
| | это называется множественное наследование..
нет, не возможно | |
|
|
|
|
|
|
|
для: Lelik
(11.04.2008 в 15:36)
| | наследование от нескольких классов - это множественное наследование, а в РНР оно невозможно. У класса наследника может быть только один предковый (базовый) класс | |
|
|
|
|
|
|
|
для: Zmej
(11.04.2008 в 16:16)
| | а как в пхп6 с этим дела обстоят? | |
|
|
|
|
|
|
|
для: Lelik
(11.04.2008 в 18:36)
| | Точно также - в этом плане всё останется без изменений, по-моему только C++ поддерживает множественное наследование, в таких языках, как PHP используют интерфейсы. | |
|
|
|
|
|
|
|
для: cheops
(12.04.2008 в 15:24)
| | а можно про интерфейсы подробней? | |
|
|
|
|
|
|
|
для: Lelik
(12.04.2008 в 23:17)
| | Интерфейсы суть "полностью абстрактные классы" в терминологии C++, т.е. они содержат абстрактные методы. Классы, реализующие интерфейсы в обязательном порядке должны их реализовывать, это позволяет более безошибочно решать задачи полиморфизма. Главной особенностью интерфейсов является то, что один класс может реализовывать сразу несколько интерфейсов. Правда мне кажется это не совсем то, что вам требуется... | |
|
|
|
|
|
|
|
для: cheops
(13.04.2008 в 12:25)
| | Правда мне кажется это не совсем то, что вам требуется...
так, тут вы правы. мне надо, чтоб в одном классе могли использоваться методы из других классов (не собираю всё в один класс, так как разбиваю всё по логике вещей, для работы с MySQL отдельный класс, для аутентификации отдельный и т. д.), в данной ситуации и одиночное наследование не то, что хотелось бы. | |
|
|
|
|
|
|
|
для: Lelik
(13.04.2008 в 13:24)
| | Хм... а почему нельзя просто создать объект и вызывать метод объекта? | |
|
|
|
|
|
|
|
для: cheops
(14.04.2008 в 12:22)
| | а потому, что все основное действие описывается в классе :) | |
|
|
|
|
|
|
|
для: cheops
(13.04.2008 в 12:25)
| | и ещё. хотелось вот, что узнать: а возможно при объявлении класса, передать ему как аргумент объект другого класса, и использовать его в методах текущего класса. чтоб меня лучше поняли:
<?php
$clss1 = new Class1();
$clss2 = new Class2($clss1);
?>
|
| |
|
|
|
|
|
|
|
для: Lelik
(13.04.2008 в 13:30)
| | <?php
Class2{
private $otherClassObj=null;
__construct($obj)
{
$this->otherClassObj($obj);
}
}
$clss1 = new Class1();
$clss2 = new Class2($clss1);
?> | |
|
|
|
|
|
|
|
для: Lstasss
(13.04.2008 в 13:39)
| | я вот что-то не пойму с какой радости переменная как метод применяется?
<?php
Class2{
private $otherClassObj=null;
__construct($obj) {
$this->otherClassObj($obj);
}
}
?>
|
UPD
при ошибке в коде, я понял, что применять можно. спасибо :) | |
|
|
|
|
|
|
|
для: Lelik
(13.04.2008 в 13:30)
| | >и ещё. хотелось вот, что узнать: а возможно при объявлении класса, передать ему как аргумент
>объект другого класса, и использовать его в методах текущего класса. чтоб меня лучше поняли:
Можно. | |
|
|
|