2016-04-12 7 views
0

Я пытался создать расширение PDO, и я хотел иметь специальные классы в разных файлах, но я хотел, чтобы они все ссылались на один и тот же оригинальный класс.Как работает работа в классах?

Я работал с некоторыми Framework, и я вижу, что они используют ключевое слово extends class, и я подумал, что он добавил класс, который вы делаете, к class, который вы указали.

Часть кода Я попытался это:

class PSMQuery extends PSM { 

    // Functions and Jargon 

} 

Я попытался сделать объект для исходного класса PSM:

$psm = new PSM(/*Information*/); 

Но когда я называю переменной $psm как $psm->functionInTheExtendedClass он приходит с ошибка, заявив, что это был неопределенный метод, когда я его назвал.

Я неправильно использую ключевое слово extends?

+0

Другой способ. IF класс A расширяет B, вы можете получить доступ и использовать материал из класса B в классе A, а не другим способом. – Rizier123

+0

Так что, вместо этого, на основном классе, я должен расширять другой класс? @ Rizier123 – Jek

+0

Пробовал, и это сработало, спасибо :) – Jek

ответ

1

Я использую ключевое слово extends неправильно?

Вы используете его правильно, но он работает наоборот.

Если PSMQuery простирается от PSM, это означает, что вы можете получить доступ и использовать материал из PSM в PSMQuery, но не наоборот.

Я думаю, что понять его можно использовать хороший пример:

class twoRoomApartment extends building { } 

Итак, теперь вы можете думать логично и уже видим, что две комнаты квартиры, вероятно, простирается от здания, а не наоборот.

В настоящее время в вашем коде вы просто создаете экземпляр PSMQuery.

0

Это наследство.

Родитель: PSM Ребенок: PSMQuery

При использовании расширяет вы расширяете функциональность родительского класса и создание дочернего класса.

Ваш дочерний класс наследует все функциональные возможности родительского класса.

Родитель не получит функциональность класса ребенка.

Поэтому, когда вы пытаетесь создать объект родительского класса, он не знает функциональность дочернего класса.

Вам необходимо создать объект дочернего класса, а затем вы можете получить доступ к методам из родительского класса.

Смежные вопросы