Инкаптуляция в ООП (наследование/перекрытие)

338
.
Вопрос к знатокам.
Можно ли как-то при наследовании не добавить, а исключить какое-то значение?
Вот так вот мы добавляем пункт к методу:
function pokeMon() {
parent::pokeMon();
echo "Это что за покемон?: ".$this->pokemon."<br/>";
}

Удалить то можно какое-то значение? Не встречал...
.
Слабо понятна проблема. Если возможно, приведи больше кода, кпримеру, оба класса целиком.
Кпримеру, ансетить свойства класса можно.
.
SlyDeath
L!MP, Соответственно если объект public то можно из кода и т.д.
Можно и так попробовать)
Я просто думал вдруг что-то специфическое есть)
Значит unset() пока универсальное решение) Спасибо)
Просто начал ООП изучать. Стока там вкусного)
.
SlyDeath, Собственно вот тема Вопросы по ООП в PHP

Будут вопросы - задавай в ней, а то там глухо как в танке
.
L!MP, Хорошо)
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
SlyDeath (26.11.2011/09:15)
Вопрос к знатокам.
Можно ли как-то при наследовании не добавить, а исключить какое-то значение?
Вот так вот мы добавляем пункт к методу: [php]function pokeMon() {
parent::pokeMon();
echo "Это что
Странно заданный вопрос...
Для начала отметим. чтоб говорить о "наследовании", вначале должен быть класс, который наследует какой-то другой.

class child_class extends parent_class{}

Далее, все зависит от механизма.
Если ты инициализируешь класс как объект (судя по твоему $this->) то ты сможешь обращаться с помощью указателя $this-> ко всем свойствам и методам как текущего, так и родительского классов. parent:: тут скорее всего не нужно, так обращаются к статическим методам родительского класса.
.
AlkatraZ (26.11.2011/11:36)
Если ты инициализируешь класс как объект (судя по твоему $this->) то ты сможешь обращаться с помощью указателя $this-> ко всем свойствам и методам как текущего, так и родительского классов. parent:: т
У него ведь метод pokeMon есть и в дочернем и в родительском классе, по этому обращение $this->pokeMon() вызвало бы рекрусию.
.
╭∩╮ (`-`) ╭∩╮
L!MP (26.11.2011/11:42)
У него ведь метод pokeMon есть и в дочернем и в родительском классе, по этому обращение $this->pokeMon() вызвало бы рекрусию.
Рекурсию бы не вызвало, это называется "разименовывание метода". Будет исполняться метод дочернего класса
.
AlkatraZ, Разыменовывание тут не при чем. Я о parent::pokeMon().
Он правильно делает что обращается непосредственно к методу родителя, иначе было бы вот так:
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
L!MP (26.11.2011/12:28)
AlkatraZ, Разыменовывание тут не при чем. Я о parent::pokeMon().
Он правильно делает что обращается непосредственно к методу родителя, иначе было бы вот так:
В этом случае, метод родительского класса должен быть статическим, иначе подобное обращение не прокатит.
Всего: 12