Форумы портала PHP.SU » » Объектно-ориентированное программирование » абстрактные классы и наследование

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

1. DivMan - 09 Апреля, 2017 - 18:05:10 - перейти к сообщению
Проверьте пожалуйста задание:

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

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

я не знаю, как правильно использовать абстрактные классы и интерфейсы.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header('Content-Type: text/html; charset:utf-8');
  4.  
  5. abstract class Product{
  6.         public function __construct($title, $price, $weight){
  7.                 $this->title = $title;
  8.                 $this->price = $price;
  9.                 $this->weight = $weight;
  10.         }
  11. }
  12.  
  13. class Planshet extends Product{
  14.         public $discount = 10;
  15.        
  16.         public function getPrice(){
  17.                 if ($this->discount) {
  18.                         return round($this->price - ($this->price * $this->discount/100));
  19.                 }
  20.                 else {
  21.                         return $this->price;
  22.                 }
  23.         }
  24. }
  25.  
  26. class Potato extends Planshet{
  27.         public function getPrice(){
  28.                 if ($this->weight > 10000) {
  29.                         return round($this->price - ($this->price * $this->discount/100));
  30.                 }
  31.                 else {
  32.                         return $this->price;
  33.                 }
  34.         }
  35. }
  36.  
  37. class Jacket extends Product{}
  38.  
  39. $planshet = new Planshet('Планшет', 2000, 400);
  40. $potato = new Potato('Картошка', 700, 4000);
  41. $potato2 = new Potato('Ещё картошка', 700, 12000);
  42. $jacket = new Jacket('Куртка', 6300, 2000);
  43.  
  44. ?>
  45. <!DOCTYPE html>
  46. <html>
  47.         <head>
  48.                 <meta charset="utf-8">
  49.         </head>
  50.         <body>
  51.                 <?PHP
  52.                         echo $planshet->title . ' цена без скидки ' . $planshet->price . ', со скидкой ' . $planshet->getPrice();
  53.                         echo '<br>';
  54.                         echo $potato->title . ' цена без скидки ' . $potato->price . ', со скидкой ' . $potato->getPrice();
  55.                         echo '<br>';
  56.                         echo $potato2->title . ' цена без скидки ' . $potato2->price . ', со скидкой ' . $potato2->getPrice();
  57.                         echo '<br>';
  58.                         echo $jacket->title. ' цена ' . $jacket->price;
  59.                 ?>
  60.         </body>
  61. </html>
  62.  
  63.  

 

Powered by ExBB FM 1.0 RC1