PHP meros, abstrakt klass va interfeys

Bir necha klass umumiy xususiyatga ega bo’lsa, ularni har birida qayta yozish shart emas. Meros umumiy qismni bitta joyda saqlashga imkon beradi.

extends — kengaytirish

PHP

Talaba tanishtir() ni yozmagan, lekin u ishladi — ota klassdan meros qilib olindi.

Metodni qayta yozish

PHP

Avlod ota metodini almashtiradi, lekin parent:: orqali uning natijasidan foydalanishi mumkin — noldan yozishdan yaxshiroq.

abstract — bajarilmagan shablon

PHP

interface — shartnoma

PHP

Polimorfizm

PHP

Tur sifatida interfeys

PHP

Buyurtma qanday jurnal ishlatilishini bilmaydi — bu tashqaridan beriladi. Shu tufayli sinovda haqiqiy jurnal o’rniga xotiradagisini qo’yish mumkin. Bu naqsh bog’liqlikni kiritish (dependency injection) deb ataladi.

final — kengaytirishni taqiqlash

PHP

final metod qayta yozilmaydi, final klassdan meros olinmaydi. Xatti-harakat buzilmasligi muhim bo’lgan joylarda ishlatiladi.

Meros o’rniga kompozitsiya

Amaliy mashq

  1. Hayvon klassi va undan It, Mushuk avlodlarini yozing;
  2. ovoz() metodini har avlodda qayta yozing;
  3. avlod constructor’ida parent::__construct chaqiring;
  4. Shakl abstrakt klassi va ikki avlod yasang;
  5. Tolov interfeysi bilan uch xil usul yozing;
  6. instanceof bilan turlarni tekshiring.

5-qadam polimorfizmning butun foydasini ko’rsatadi.

Qisqacha xulosa

  • extends avlod klassni ota asosida yaratadi; parent:: ota a’zosiga murojaat.
  • protected — shu klass va avlodlar uchun.
  • Abstrakt klassdan obyekt yasab bo’lmaydi; abstract metodni avlod yozishi shart.
  • Interfeys — shartnoma: nima qila olishini aytadi, qanday qilishini emas.
  • Bir klass bitta klassdan meros oladi, lekin ko’p interfeys bajaradi.
  • Polimorfizm: bir chaqiruv turli obyektlarda turlicha ishlaydi.
  • Chuqur meros o’rniga ko’pincha kompozitsiya afzal.

Keyingi darsda sessiya va cookie — foydalanuvchini eslab qolish.

Bu dars foydali bo'ldimi?

marta ko'rildi