|
|
|
| Здрасте... Помогите пожалуйста разобраться.
Вот есть некий класс Main, в нем происходить инициализация основных свойств/методов. На основе его свойств в нем же создается объект другого класса. И мне нужно чтоб объект класса Main содержал в себе не только свои, но и новые свойства и методы. Вот примерный код ->
<?php
class Main{
protected $var=array();
protected $error;
function __construct($mode){
$this->var['index1']='value1';
$this->var['index2']='value2';
switch((int)$mode){
case 1:
return new Class1();
break;
case 2:
return new Class2();
break;
default: die('параметры неверны');
}
}
public function get_error(){
return $this->error;
}
protected function set_error($err_msg){
return $this->error=$err_msg;
}
}
class Class2 extends Main{
private $param;
function __construct(){
}
public function get_param(){
echo $this->var['index2']);
}
}
...
...
$obj=new Main('2');
$obj->get_param(); // В итоге ошибка, неопределеный метод.
?>
|
| |
|
|
|
|
|
|
|
для: not detected
(28.07.2008 в 04:50)
| | Класс main - родитель. Он не может содержать свойства и методы потомка.
Непонятно, зачем вам это надо? Обычно в родителя выносят общие свойства и методы группы объектов, которые потом переопределяют и дополняют в потомках, для получения уникальных свойств. | |
|
|
|
|
|
|
|
для: not detected
(28.07.2008 в 04:50)
| | Если честно, фигню написали. Это не ООП, никаким наследованием тут и не пахнет. | |
|
|
|
|
|
|
|
для: GeorgeIV
(28.07.2008 в 10:52)
| | Не спорю, фигня... Учусь пока, пытаюсь понять ООП. // Для чего надо? Хотел автоматизировать создание скринов к файлам. Класс Main должен был содержать основные/необходимые свойства и методы. В зависимости от того что указали при создании объекта класса Main ($obj=new или Main(1); $obj=new Main(2);) , внутри этого класса создавался бы объект необходимого класса который и создаст нужное изображение. | |
|
|
|
|
|
|
|
для: not detected
(28.07.2008 в 12:25)
| | а что мешает писать $obj = new Class2(); $obj = new Class1();
только сами классы переписать надо, родитель не должен знать о потомках, кроме того, что они могут унаследовать его свойства и методы. | |
|
|
|
|
|
|
|
для: GeorgeIV
(28.07.2008 в 13:27)
| | Да. Так и сделаю. Я не правильно понял принцип наследования. Пасиба... | |
|
|
|