Вызов родительский функций в ООП

Beavis

Banned
всё, я сам нашел что хотел
Языки объектного программирования принято делить на объектные, в которых существуют классы и объекты, и объектно-ориентированные, в которых программист может не только пользоваться предопределёнными классами, но и задавать собственные пользовательские классы (либо создавать объекты, устройство которых отличается от устройства прототипов — в языках прототипного программирования).
-~{}~ 10.03.08 18:10:

Автор оригинала: dimagolov
Beavis, ну к примеру таковым представителем можно назвать JavaScript, так как классов там нету, в отличии от объектов, которые есть.
и в яваскрипте используется как раз прототипное программирование
 

Sluggard

Новичок
Beavis
объектно-ориентированные, в которых программист может не только пользоваться предопределёнными классами, но и задавать собственные пользовательские классы
Это поддерживают и "объектные языки".
Почитай лучше Object-based language
 

dimagolov

Новичок
Sluggard, ты все напутал. вот цитата из твоей же ссылки
Sometimes the term object-based is applied to prototype-based languages, true object-oriented languages that do not have classes, but in which objects instead inherit their code and data directly from other template objects. An example of a commonly used prototype-based language is JavaScript.
Блин, как JAVA != JavaScript надо прописать В JavaScript НЕТУ КЛАССОВ
 

джамшут

Новичок
Sluggard, синтаксисом функций там реализуется конструктор объектов. причём тут классы?
 

Sluggard

Новичок
dimagolov, джамшут
Все верно, классов в javascript нет

dimagolov
Все же прототипное программирование - это стиль ООП.
 

YuriyA

Новичок
а так -
A::kvadrat($var);?

Если классы наследуются так A->B->C->D.
Как из D вызвать функцию из A? В с++ это делается так A::kvadrat($var);
 

Beavis

Banned
PHP:
class A {
	protected function kvadrat() {
		echo "A";
	}
}
class B extends A {
	protected function kvadrat() {
		echo "B";
	}
}
class C extends B {
	protected function kvadrat() {
		echo "C";
	}
}
class D extends C {
	final public function kvadrat() {
		A::kvadrat();
	}
}

$d = new D();
$d->kvadrat();
выведет А
 

AmdY

Пью пиво
Команда форума
ещё адин любитель public morozov
Beavis уважаемый - это и есть недоООП
 

Beavis

Banned
Автор оригинала: AmdY
ещё адин любитель public morozov
Beavis уважаемый - это и есть недоООП
а нигде даже и подробной задачи не было написано, чтоб посоветовать как нормально применить средства ООП
как спросили, как из наследника вызвать метод прадедушки, так и получили на этот вопрос ответ
 

Alexandre

PHPПенсионер
и вопрос к Sluggard'у - откуда взялось понятие "объектное программирование" и чем оно отличается от ООП ?
из книги Объектно-ориентированный анализ и проектирование автор Буч - основоположник ООП.
вопросы?

-~{}~ 11.03.08 20:23:

Любой язык поддерживающий инкапсуляцию, наследование и полиморфизм считается ОО языком.
ага, именно три в одном а не одно из трех.
 

fixxxer

К.О.
Партнер клуба
раз уж тут такие ооп-пуристы собрались, посоветую забыть про "инкспасуляцию-наследование-полиморфизм" и почитать какую-нибудь литературу по smalltalk :)
 

YuriyA

Новичок
Основоположник ООП - Страуструп, если мне не изменяет память. С++ точно
 
Сверху