[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Наследование атрибутов
allatone
Помогите разобраться с наследованием.
Вот код:
<?
class core
{
var $razdel;

function init($razdel){
$this->razdel = $razdel;
}
}

class structure extends core{
function test(){
echo $this->razdel;
}
}


$Core= new core;
$Core->init(1);

$structure = new structure;
echo $structure->test();
?>


обьект дочернего класса structure хоть и содержит атрибут razdel, но он пустой,
т.е. при создании обьекта дочернего надо снова запускать конструктор родительского.
Есть ли какая-то возможность унаследовать не только атрибуты, но и их значения?



Спустя 1 час, 1 минута, 20 секунд (24.08.2010 - 16:59) vitaly777 написал(а):
2 разных обьекта. Мне кажется, что нет.

Спустя 4 часа, 46 минут, 54 секунды (24.08.2010 - 21:46) Nord написал(а):
Цитата

т.е. при создании обьекта дочернего надо снова запускать конструктор родительского.

Так и есть, но в вашем коде нет ни одного конструктора


class core {
public $razdel;
function __construct($razdel) {
$this->razdel = $razdel;
}
}

class structure extends core {
function test() {
echo $this->razdel;
}
}

$structure = new structure('ss');
echo $structure->test(); // ss


Спустя 3 часа, 37 минут, 47 секунд (25.08.2010 - 01:23) allatone написал(а):
Спасибо, разобрался.

Спустя 7 часов, 55 минут, 28 секунд (25.08.2010 - 09:19) linker написал(а):
Значения унаследовать нельзя, только если они явно не заданы
class core 
{
public $razdel = 'ss';
}
class structure extends core
{
}

$structure = new structure();
echo $structure->razdel; // ss

Спустя 23 часа, 18 минут, 43 секунды (26.08.2010 - 08:37) Guest написал(а):
или имеют тип static

Спустя 1 час, 24 минуты, 47 секунд (26.08.2010 - 10:02) linker написал(а):
static не наследуется, а принадлежит тому классу, в котором определено данное статическое поле.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.