абстрактные классы и наследование

231
13 апреля 2017, 20:08

проверьте пожалуйста задание

  1. Создайте базовый класс продукта.
  2. Создайте три любых типа продукта (класса), в разных категориях;
  3. Все продукты, кроме одного, имеют 10 процентную скидку и их цена должна выводиться с ней;
  4. Один тип продукта - имеет скидку только в том случае, если его вес больше 10 килограмм;

Используйте примеси, интерфейсы или абстрактные классы в решении задачи.

Нормальный ли код для первого раза?

<?php
header('Content-Type: text/html; charset:utf-8');
error_reporting(-1);
abstract class Product{
    public $title;
    protected $price;
    public $weight;
    private $discount = 10;
    public function getDiscount(){
        return $this->discount;
    }
    public function getPrice(){
        return $this->price;
    }
    protected function getPriceDiscount(){
        if ($this->getDiscount()) {
            return round($this->price - ($this->price * $this->getDiscount()/100));
        }
        else {
            return $this->price;
        }
    }
    public function getFunGetPriceDiscount(){
        return $this->getPriceDiscount();
    }
    public function __construct($title, $price, $weight){
        $this->title = $title;
        $this->price = $price;
        $this->weight = $weight;
    }
}
class Planshet extends Product{}
class Potato extends Product{
    function getFunGetPriceDiscount(){
        if($this->weight > 10000){
            return parent::getFunGetPriceDiscount();
        }
        else{
            return $this->getPrice();
        }
    }
}
class Jacket extends Product{}

$planshet = new Planshet('Планшет', 2000, 400);
$potato = new Potato('Картошка', 700, 12000);
$jacket = new Jacket('Куртка', 700, 2000);
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <?php
            echo $planshet->title . ' цена без скидки ' . $planshet->getPrice() . ', со скидкой ' . $planshet->getFunGetPriceDiscount();
            echo '<br>';
            echo $potato->title . ' цена без скидки ' . $potato->getPrice() . ', со скидкой ' . $potato->getFunGetPriceDiscount();
            echo '<br>';
            echo $jacket->title. ' цена ' . $jacket->getPrice();
        ?>
    </body>
</html>
READ ALSO
Как прикрепить приватное фото на стену Вконтакте?

Как прикрепить приватное фото на стену Вконтакте?

Всем доброй ночиПолучаю из обсуждения фотографии прикрепленные к комментарию

250
Проблема со связью

Проблема со связью

Суть проблемы вот в чем:

196
Изменить значение пути для &ldquo;/&rdquo; php

Изменить значение пути для “/” php

Помогите решить такую проблему: разрабатывая программу на локальном сервере (WAMP 3) у меня работали нормально пути в функциях типа

224
php set cookie file_get_contents

php set cookie file_get_contents

Почему не работает?

237