| |
|
|
| |
Говорит: Cannot make static method class1::check() non static in class class2
Как я понимаю, что ему не нравиться что метод class1::check() не объявлен как статический.
В связи с этим вопрос: А что, вызывать можно только методы которые объявлены как статические? Или я че-то не то делаю? | |
| |
|
|
| |
|
|
| |
для: tAleks
(08.09.2007 в 17:06)
| | | написать какой из классов родительский , а какой порожденный ,
какой метод статический, а какой - обычный - уже никак? | |
| |
|
|
| |
|
|
| |
для: tAleks
(08.09.2007 в 17:06)
| | | А вы где этот метод вызваете? | |
| |
|
|
| |
|
|
| |
для: tAleks
(08.09.2007 в 17:06)
| | | Нет, вызывать можно и обычные и статические. Просто есть ограничение, что статический метод, был статическим в потомке. Либо назовите в потомке свой метод другим именем, либо сделайте в родителе класс не статичским | |
| |
|
|
| |
|
|
| |
для: Artem S.
(09.09.2007 в 13:41)
| | | >Просто есть ограничение, что статический метод, был статическим в потомке.
Это, как бы сказать помягче, не ограничение. Это логика чистой воды.
Статический метод не работает с экземпляром, и даже не знает о его существовании.
Обычному методу требуется передать ссылку на экземпляр. А где статический метод эту ссылку возьмет, если об экземпляре знать не знает?
Конечно, если статический метод попросить вызвать обычный, хоть своего класса, хоть родителя - он загнется. | |
| |
|
|
| |
|
|
| |
для: Trianon
(09.09.2007 в 13:48)
| | | >Конечно, если статический метод попросить вызвать обычный, хоть своего класса, хоть
>родителя - он загнется.
Да, так в любом объектно-ориентированном языке программирования кроме PHP - в нём если метод не обращается к членам объекта - он ведёт себя как статический и его, что самое странное, можно вызывать без создания объекта. Дурдом, конечно, но до сих пор не исправлено. | |
| |
|
|