dergunovs

Untitled

May 15th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.42 KB | None | 0 0
  1. <?php
  2.  
  3. //Машина
  4.  
  5. //Интерфейс - Перевозка. Мы можем считать время, за которое любой траснпорт преодолевает определенное расстояние.
  6.  
  7. interface Transport {
  8.     public function countTime();
  9. }
  10.  
  11. //Помимо легковых автомобилей внутри суперкласса могут быть грузовики, мотоциклы.
  12.  
  13. class Vehicle implements Transport {
  14.     function countTime () {
  15.         //код
  16.     }
  17. }
  18.  
  19. class Car extends Vehicle {
  20.     public $brand;
  21.     public $price;
  22.  
  23.     function isExpensive() {
  24.         if ("{$this->price}" > 650000) {
  25.             return "Да";
  26.         } else {
  27.             return "Нет";
  28.         }
  29.     }
  30. }
  31.  
  32. $car1 = new Car();
  33. $car2 = new Car();
  34.  
  35. $car1->brand = 'БМВ';
  36. $car2->brand = 'Ауди';
  37. $car1->price = 600000;
  38. $car2->price = 700000;
  39.  
  40.  
  41.  
  42. //Телевизор
  43.  
  44. //Интерфейс - Ремонт. Мы можем отремонтировать любое устройство, по-крайней мере подать заявку на ремонт.
  45.  
  46. interface Repair {
  47.     public function wantToRepair();
  48. }
  49.  
  50. //Помимо телевизора внутри суперкласса могут быть мониторы, экраны сотовых телефонов.
  51.  
  52. class Display implements Repair {
  53.     function countTime () {
  54.         //код
  55. }
  56.  
  57. class TV extends Display {
  58.     public $brand;
  59.     public $size;
  60.  
  61.     function getBigSize() {
  62.         if ("{$this->size}" > 41) {
  63.             return true;
  64.         }
  65.     }
  66. }
  67.  
  68. $tv1 = new TV();
  69. $tv2 = new TV();
  70.  
  71. $tv1->brand = 'Сони';
  72. $tv2->brand = 'Филипс';
  73. $tv1->size = 42;
  74. $tv2->size = 40;
  75.  
  76.  
  77.  
  78. //Шариковая ручка
  79.  
  80. //Интерфейс - Рука. Мы можем писАть любыми письменными принадлежностями.
  81.  
  82. interface Hand {
  83.     public function toWrite();
  84. }
  85.  
  86. //Помимо ручки внутри суперкласса могут быть карандаши, маркеры.
  87.  
  88. class Writing_tools implements Hand {
  89.     function toWrite() {
  90.         //код
  91.     }
  92. }
  93.  
  94. class Pen extends Writing_tools {
  95.     public $color;
  96.     public $type;
  97.  
  98.     function getDescription() {
  99.         return "{$this->color} {$this->type}";
  100.     }
  101. }
  102.  
  103. $pen1 = new Pen();
  104. $pen2 = new Pen();
  105.  
  106. $pen1->color = 'Черная';
  107. $pen2->color = 'Синяя';
  108. $pen1->type = 'Шариковая';
  109. $pen2->type = 'Гелевая';
  110.  
  111.  
  112.  
  113. //Утка
  114.  
  115. //Интерфейс - Зоопарк. Животых держат в зоопарке. Пример функции - узнать вид и род животного.
  116.  
  117. interface Zoo {
  118.     public function kindOf();
  119. }
  120.  
  121. //Помимо утки внутри суперкласса могут быть голуби, пингвины.
  122.  
  123. class Birds implements Zoo {
  124.     function kindOf() {
  125.         //код
  126.     }
  127. }
  128.  
  129. class Duck extends Birds {
  130.     public $name;
  131.     public $whereIs;
  132.  
  133.     function sayKryaKrya() {
  134.         return "{$this->name} сказал КРЯ-КРЯ";
  135.     }
  136. }
  137.  
  138. $duck1 = new Duck();
  139. $duck2 = new Duck();
  140.  
  141. $duck1->name = 'Чёрный плащ';
  142. $duck2->name = 'Скрудж МакДак';
  143. $duck1->whereIs = 'На месте';
  144. $duck2->whereIs = 'Зимует';
  145.  
  146.  
  147.  
  148. //Товар
  149.  
  150. //Интерфейс - Корзина. Добавлять в корзину сайта можно товары и услуги (например, доп гарантия).
  151.  
  152. interface Cart {
  153.     public function addToCart();
  154. }
  155.  
  156. //Помимо товаров внутри суперкласса могут быть услуги. Речь можем идти об интернет-магазине с доп услугами. У них могут быть одинаковые свойства, например, цена.
  157.  
  158. class Sellable implements Cart {
  159.     function addToCart() {
  160.         //код
  161.     }
  162. }
  163.  
  164. class Item extends Sellable {
  165.     public $count;
  166.     public $available;
  167.  
  168.     function isAvailable() {
  169.         if ("{$this->available}" == true) {
  170.             return "В наличии {$this->count} шт.";
  171.         } else {
  172.             return "Товара нет в наличии";
  173.         }
  174.     }
  175. }
  176.  
  177. $item1 = new Item();
  178. $item2 = new Item();
  179.  
  180. $item1->count = 100;
  181. $item2->count = 200;
  182. $item1->available = true;
  183. $item2->available = false;
Advertisement
Add Comment
Please, Sign In to add comment