Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Абстрактный класс
Форумы портала PHP.SU » » Вопросы новичков » Абстрактный класс

Страниц (1): [1]
 

1. Андрей95 - 14 Октября, 2017 - 23:01:58 - перейти к сообщению
Доброй ночи.
Меня волнует одна проблема.

Я создал класс Index:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. class Index extends Core {
  5.         public function url_to_class() {
  6.                 return 'Возможно это сработает.';
  7.         }
  8. }
  9.  
  10.  
  11.  
  12. ?>
  13.  


и класс Core:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. abstract class Core {
  5.         public function test() {
  6.                 echo $this->url_to_class();
  7.         }
  8.        
  9.         abstract function url_to_class();
  10. }
  11.  
  12. ?>
  13.  


Но ругается что класс Core не может создать абстрактный экземпляр.
То есть это
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Fatal error: Cannot instantiate abstract class Core in M:\home\cms_test\www\index.php on line 12
  3.  

Почему?
2. Строитель - 15 Октября, 2017 - 00:11:18 - перейти к сообщению
Андрей95 потому что создавать надо экземпляр дочернего класса :
Спойлер (Отобразить)
PHP:
скопировать код в буфер обмена
  1. abstract class Core
  2. {
  3.     public function test() {
  4.         echo $this->url_to_class();
  5.     }
  6.    
  7.     abstract function url_to_class();
  8. }
  9.  
  10. class Index extends Core
  11. {
  12.     public function __construct() {
  13.         parent::test();
  14.     }
  15.    
  16.     public function url_to_class() {
  17.         return 'Возможно это сработает.';
  18.     }
  19. }
  20.  
  21. $obj = new Index; // Возможно это сработает.
3. caballero - 15 Октября, 2017 - 18:19:42 - перейти к сообщению
Цитата:
Но ругается что класс Core не может создать абстрактный экземпляр

Разумеется, это ж абстрактный класс.
Не очень понятно зачем вы делаете абстрактный класс не удосужившись почитать что это такое и как используется

 

Powered by ExBB FM 1.0 RC1