|
abstract class ObjectОбсуждение темы abstract class Object в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Доброго времени суток. Назрел один вопрос. Частенько встречаю конструкцию вида: <?php abstract class Object { } class Class1 extends Object { // Что-либо ... |
|
Опции темы |
30.08.2009, 19:10 | #1 |
|
Доброго времени суток. Назрел один вопрос. Частенько встречаю конструкцию вида:
<?php abstract class Object { } class Class1 extends Object { // Что-либо } class Class2 extends Object { // Что-либо } ?> Собственно сам вопрос. Зачем присваивать всем классам один родительский класс Object и тем более делать его абстрактным? Всем спасибо. |
|
31.08.2009, 00:33 | #2 |
|
походу это привет из C...
В принципе необязательно совсем. Хотя по мне так удобнее. всегда можно в Object напихать какой-нибудь хренотени, которая тебе потом понадобится во всех классах. А абстрактный он потому, что тебе экземпляры его не нужны |
|
31.08.2009, 01:46 | #3 | ||
|
Цитата:
Цитата:
Последний раз редактировалось php5user; 31.08.2009 в 01:55.. |
||
|
31.08.2009, 09:46 | #4 | |
|
Цитата:
Вообще abstract используется на всякий случай. Особенно, если пишется библиотека для использования сторонними разработчиками. |
|
|
31.08.2009, 10:37 | #5 | ||||
|
Цитата:
Цитата:
Цитата:
Цитата:
И все же - зачем присваивать всем классам один родительский класс Object и тем более делать его абстрактным? |
||||
|
31.08.2009, 11:39 | #6 |
|
php5user, вы меня не совсем правильно поняли.
Я говорил: "всегда можно в Object напихать какой-нибудь хренотени". это значит, что тем самым мы закладываемся на будущее. Ну вдруг нам понадобиться чтото общее для всех классов дописать. А польза от abstract не меньшая, чем от private/protected.... Некоторые языки вообще запрещают определять абстрактные функции в неабстрактных классах, и php в их числе. Видимо разработчики именно под эту возможность и закладывались... |
|
31.08.2009, 11:49 | #7 |
|
php5user, сколько раз я сам пользовался классами без использования модификаторов доступа. Без них спокойно можно прожить. В принципе, как и без ООП, реализовав подобие ООП в структурном языке.
Если ты точно знаешь, что не будешь создавать объекты какого-то класса, то лучше этот класс пометить как обстрактный. http://docs.php.net/manual/ru/langua....rationale.php Не нашел на php.net информации, что разработчики отказались от пространств имен. |
|
31.08.2009, 20:52 | #8 |
|
Вообщем, конкретизировано это звучит так:
1. Абстрактные классы чаще всего используются для создания семейства объектов, обладающих единым интерфейсом. 2. Также они используются, когда нужно запретить создание объекта некоторого класса. Считаю пункт 1 более вероятным для ситуации с "abstract class Object". Всем спасибо. Последний раз редактировалось php5user; 31.08.2009 в 20:53.. Причина: Добавлено сообщение |
|
01.09.2009, 09:55 | #9 |
|
php5user, собсна, Асмодиан это и говорил.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Framework - и class | ivan341 | ASP, Perl, PHP и MySQL | 38 | 01.04.2010 00:12 |
Как убрать рамку с элемента <object> в html в IE7? | alexey25 | HTML, CSS, JavaScript | 3 | 09.10.2007 20:00 |
Rollover object | alexG | HTML, CSS, JavaScript | 1 | 18.10.2006 16:08 |
class=tabs | Intery | HTML, CSS, JavaScript | 3 | 12.07.2005 09:19 |
Есть ли class для onMouseOver... | bond | HTML, CSS, JavaScript | 4 | 02.10.2003 16:03 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|