@Akmal_23ram
web dev

Что не так в этом коде?

Начал изучать ООП в пхп, пишу код как говорится в видео уроке но выдается ошибка:
Fatal error: Class Car contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Car::showInfo) in C:\OSPanel\domains\localhost\index.php on line 30

Вот код:
<?php 
    class Car {
        public $name;
        public $year;
        public $type;
        protected $hp;
        protected $price;

        

        function con ($name,$year, $type, $hp, $price) {
            $this->name = $name;
            $this->year = $year;
            $this->type = $type;
            $this->hp = $hp;
            $this->price = $price;

        }

        public function tuning() {
            $this->hp += 50;
        }
        public function showHp() {
            echo $this->hp;
        }

        abstract public function showInfo();

        
    }

    class Mustang extends Car {
        public function tuning() {
            parent::tuning();
            $this->hp += 450;
        }
        public function showInfo() {
            echo $this->name;
        }
    }

    $mustangGT = new Mustang();

    $mustangGT->con('Mustang GT', 2017, 'Muscle car', '900' , 39000);
    echo $mustangGT->showHp();
    $mustangGT->tuning();
    echo "<br>";
    echo $mustangGT->showHp();    
    ?>

Что я не правильно понял?
  • Вопрос задан
  • 2188 просмотров
Решения вопроса 1
alexey_bille
@alexey_bille
Web developer
У класса Car есть абстрактный метод, нужно класс так же объявить абстрактным
Документация
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
toxa82
@toxa82
Класс Car должен быть абстрактным, т.к. содержит абстрактый метод.
Ответ написан
Комментировать
@yegreS
и не помешает использовать __construct вместо con
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы