{"id":27340,"date":"2017-11-25T23:30:53","date_gmt":"2017-11-25T20:30:53","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/php-oop-abstract-classes-and-interfaces\/"},"modified":"2020-04-10T23:57:09","modified_gmt":"2020-04-10T20:57:09","slug":"php-oop-abstract-classes-and-interfaces","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/php\/php-oop-abstract-classes-and-interfaces\/","title":{"rendered":"PHP. OOP. Abstract classes and interfaces"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;PHP. OOP. Abstract classes and interfaces&#8221; _builder_version=&#8221;3.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;4.4.2&#8243; custom_padding=&#8221;0px|||&#8221; hover_enabled=&#8221;0&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; border_color_all=&#8221;#ffffff&#8221; border_style_all=&#8221;solid&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]In today lesson we will discuss abstract classes and interfaces in php and talk about difference between it.<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/www.youtube.com\/watch?v=wtmjTBN7n3U&#8221; _builder_version=&#8221;3.0.89&#8243;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; border_color_all=&#8221;#ffffff&#8221; border_style_all=&#8221;solid&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]Abstract classes are implements with adding key word abstract. Abstract classes can have properties and methods. But unlike simple classes methods in abstract classes have not body. Key concept of abstract methods is you must implement these methods in children classes.<\/p>\n<p>Interface is abstract class, but interface has not got properties. Interface implements with key word interface.<\/p>\n<p>One more key concept is class can extends only one class, but it cant implements several interfaces.<\/p>\n<p>Difference in using interfaces and abstract classes is very &#8220;thin&#8221; problem. Abstract class unites family classes. For example, you have Car class. And class Ford, Toyota extends from Car class. They have common methods (declared in abstract class).<br \/>\nBut if you have got Bike class, it makes no sense to implement, for example, changeOil() method. For such classes you need to use interfaces.<br \/>\n[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson (abstract class)&#8221; code=&#8221;PD9waHAKCi8qKgogKiAg0JDQsdGB0YLRgNCw0LrRgtC90YvQuSDQutC70LDRgdGBINC+0LHRj9C30YPQtdGCINC90LDRgdC70LXQtNGD0LXQvNGL0LUg0L7RgiDQvdC10LPQviDQutC70LDRgdGB0YsKKiogINGA0LXQsNC70LjQt9C+0LLRi9Cy0LDRgtGMINCy0YHQtSDQsNCx0YHRgtGA0LDQutGC0L3Ri9C1INC80LXRgtC+0LTRiwogKi8KYWJzdHJhY3QgY2xhc3MgVHJhbnNwb3J0CnsKCiAgICBwdWJsaWMgJGRyaXZlck5hbWUgPSAi0JLQvtC00LjQu9CwIjsgLy8g0YHQstC+0LnRgdGC0LLQsCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0LDQsdGB0YLRgNCw0LrRgtC90YvQvNC4CgogICAgYWJzdHJhY3QgZnVuY3Rpb24gZHJpdmVyU2lkZSgpOwogICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoYW5nZU9pbCgpOyAvLyDQvNC10YLQvtC0INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCBwcml2YXRlCgogICAgLy8g0LIg0LDQsdGB0YLRgNCw0LrRgtC90L7QvCDQutC70LDRgdGB0LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQuCDQvtCx0YvRh9C90YvQtSDQvNC10YLQvtC00YsKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXlIZWxsbygpIHsKICAgICAgICBlY2hvICLQn9GA0LjQstC10YIg0LLQsNC8INC40Lcg0LzQtdGC0L7QtNCwIjsKICAgIH0KCgp9CgpjbGFzcyBDYXIgZXh0ZW5kcyBUcmFuc3BvcnQgewoKICAgIHB1YmxpYyAkd2hlZWxzID0gNDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnRXaGVlbHMoKSB7CiAgICAgICAgZWNobyAi0KMg0LzQsNGI0LjQvdGLICIgLiAkdGhpcy0+d2hlZWxzIC4gIiDQutC+0LvQtdGB0LAiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkcml2ZXJTaWRlKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmRyaXZlck5hbWUgLiAiINGB0LjQtNC40YIg0LfQsCDRgNGD0LvQtdC8INGB0LvQtdCy0LAiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKSB7CiAgICAgICAgZWNobyAi0JIg0LzQsNGI0LjQvdC1INC90LDQtNC+INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LzQtdC90Y\/RgtGMINC80LDRgdC70L4iOwogICAgfQoKfQoKY2xhc3MgQmlrZSBleHRlbmRzIFRyYW5zcG9ydCB7CgogICAgcHVibGljICR3aGVlbHMgPSAyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudFdoZWVscygpIHsKICAgICAgICBlY2hvICLQoyDQstC10LvQvtGB0LjQv9C10LTQsCAiIC4gJHRoaXMtPndoZWVscyAuICIg0LrQvtC70LXRgdCwIjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZHJpdmVyU2lkZSgpIHsKICAgICAgICBlY2hvICR0aGlzLT5kcml2ZXJOYW1lIC4gIiDQv9GA0L7RgdGC0L4g0YHQuNC00LjRgiDQt9CwINGA0YPQu9C10LwiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKSB7CiAgICAgICAgZWNobyAi0JIg0LLQtdC70L7RgdC40L\/QtdC00LUg0L3QsNC00L4g0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQvNC10L3Rj9GC0Ywg0LzQsNGB0LvQvi4uLtCU0LAg0LvQsNC00L3Qvj8iOwogICAgfQoKfQoKJGNhciA9IG5ldyBDYXIoKTsKJGJpa2UgPSBuZXcgQmlrZSgpOwoKLyrQn9C+0YHQvNC+0YLRgNC40Lwg0L3QsCDQvtCx0YrQtdC60YLRiyovCmVjaG8gIjxwcmU+IjsKICAgIHByaW50X3IoJGNhcik7CmVjaG8gIjwvcHJlPiI7CgplY2hvICI8cHJlPiI7CiAgICBwcmludF9yKCRiaWtlKTsKZWNobyAiPC9wcmU+IjsKCiRjYXItPmNvdW50V2hlZWxzKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+Y291bnRXaGVlbHMoKTsKZWNobyAiPGJyPiI7CiRjYXItPmRyaXZlclNpZGUoKTsKZWNobyAiPGJyPiI7CiRiaWtlLT5kcml2ZXJTaWRlKCk7CmVjaG8gIjxicj4iOwokY2FyLT5jaGFuZ2VPaWwoKTsKZWNobyAiPGJyPiI7CiRiaWtlLT5jaGFuZ2VPaWwoKTsKZWNobyAiPGJyPiI7CiRjYXItPnNheUhlbGxvKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+c2F5SGVsbG8oKTsK&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PD9waHAKCi8qKgogKiAg0JDQsdGB0YLRgNCw0LrRgtC90YvQuSDQutC70LDRgdGBINC+0LHRj9C30YPQtdGCINC90LDRgdC70LXQtNGD0LXQvNGL0LUg0L7RgiDQvdC10LPQviDQutC70LDRgdGB0YsKKiogINGA0LXQsNC70LjQt9C+0LLRi9Cy0LDRgtGMINCy0YHQtSDQsNCx0YHRgtGA0LDQutGC0L3Ri9C1INC80LXRgtC+0LTRiwogKi8KYWJzdHJhY3QgY2xhc3MgVHJhbnNwb3J0CnsKCiAgICBwdWJsaWMgJGRyaXZlck5hbWUgPSAi0JLQvtC00LjQu9CwIjsgLy8g0YHQstC+0LnRgdGC0LLQsCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0LDQsdGB0YLRgNCw0LrRgtC90YvQvNC4CgogICAgYWJzdHJhY3QgZnVuY3Rpb24gZHJpdmVyU2lkZSgpOwogICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoYW5nZU9pbCgpOyAvLyDQvNC10YLQvtC0INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCBwcml2YXRlCgogICAgLy8g0LIg0LDQsdGB0YLRgNCw0LrRgtC90L7QvCDQutC70LDRgdGB0LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQuCDQvtCx0YvRh9C90YvQtSDQvNC10YLQvtC00YsKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXlIZWxsbygpIHsKICAgICAgICBlY2hvICLQn9GA0LjQstC10YIg0LLQsNC8INC40Lcg0LzQtdGC0L7QtNCwIjsKICAgIH0KCgp9CgpjbGFzcyBDYXIgZXh0ZW5kcyBUcmFuc3BvcnQgewoKICAgIHB1YmxpYyAkd2hlZWxzID0gNDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnRXaGVlbHMoKSB7CiAgICAgICAgZWNobyAi0KMg0LzQsNGI0LjQvdGLICIgLiAkdGhpcy0+d2hlZWxzIC4gIiDQutC+0LvQtdGB0LAiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkcml2ZXJTaWRlKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmRyaXZlck5hbWUgLiAiINGB0LjQtNC40YIg0LfQsCDRgNGD0LvQtdC8INGB0LvQtdCy0LAiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKSB7CiAgICAgICAgZWNobyAi0JIg0LzQsNGI0LjQvdC1INC90LDQtNC+INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LzQtdC90Y\/RgtGMINC80LDRgdC70L4iOwogICAgfQoKfQoKY2xhc3MgQmlrZSBleHRlbmRzIFRyYW5zcG9ydCB7CgogICAgcHVibGljICR3aGVlbHMgPSAyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudFdoZWVscygpIHsKICAgICAgICBlY2hvICLQoyDQstC10LvQvtGB0LjQv9C10LTQsCAiIC4gJHRoaXMtPndoZWVscyAuICIg0LrQvtC70LXRgdCwIjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZHJpdmVyU2lkZSgpIHsKICAgICAgICBlY2hvICR0aGlzLT5kcml2ZXJOYW1lIC4gIiDQv9GA0L7RgdGC0L4g0YHQuNC00LjRgiDQt9CwINGA0YPQu9C10LwiOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKSB7CiAgICAgICAgZWNobyAi0JIg0LLQtdC70L7RgdC40L\/QtdC00LUg0L3QsNC00L4g0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQvNC10L3Rj9GC0Ywg0LzQsNGB0LvQvi4uLtCU0LAg0LvQsNC00L3Qvj8iOwogICAgfQoKfQoKJGNhciA9IG5ldyBDYXIoKTsKJGJpa2UgPSBuZXcgQmlrZSgpOwoKLyrQn9C+0YHQvNC+0YLRgNC40Lwg0L3QsCDQvtCx0YrQtdC60YLRiyovCmVjaG8gIjxwcmU+IjsKICAgIHByaW50X3IoJGNhcik7CmVjaG8gIjwvcHJlPiI7CgplY2hvICI8cHJlPiI7CiAgICBwcmludF9yKCRiaWtlKTsKZWNobyAiPC9wcmU+IjsKCiRjYXItPmNvdW50V2hlZWxzKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+Y291bnRXaGVlbHMoKTsKZWNobyAiPGJyPiI7CiRjYXItPmRyaXZlclNpZGUoKTsKZWNobyAiPGJyPiI7CiRiaWtlLT5kcml2ZXJTaWRlKCk7CmVjaG8gIjxicj4iOwokY2FyLT5jaGFuZ2VPaWwoKTsKZWNobyAiPGJyPiI7CiRiaWtlLT5jaGFuZ2VPaWwoKTsKZWNobyAiPGJyPiI7CiRjYXItPnNheUhlbGxvKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+c2F5SGVsbG8oKTsK[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (interface)&#8221; code=&#8221;PD9waHAKCmludGVyZmFjZSBPaWxhYmxlIHsKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKTsKfQoKaW50ZXJmYWNlIERvb3JhYmxlIHsKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudERvb3JzKCk7Cn0KCmNsYXNzIENhciBpbXBsZW1lbnRzIE9pbGFibGUsIERvb3JhYmxlIHsKCiAgICBwdWJsaWMgJHdoZWVscyA9IDQ7CgogICAgcHVibGljIGZ1bmN0aW9uIGNvdW50V2hlZWxzKCkgewogICAgICAgIGVjaG8gItCjINC80LDRiNC40L3RiyAiIC4gJHRoaXMtPndoZWVscyAuICIg0LrQvtC70LXRgdCwIjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hhbmdlT2lsKCkgewogICAgICAgIGVjaG8gItCf0L7RgNCwINC80LXQvdGP0YLRjCDQvNCw0YHQu9C+IjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnREb29ycygpIHsKICAgICAgICBlY2hvICLQkiDQvNCw0YjQuNC90LUgMiDQuNC70LggNCDQtNCy0LXRgNC4IjsKICAgIH0KCn0KCmNsYXNzIEJpa2UgewoKICAgIHB1YmxpYyAkd2hlZWxzID0gMjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnRXaGVlbHMoKSB7CiAgICAgICAgZWNobyAi0KMg0LLQtdC70L7RgdC40L\/QtdC00LAgIiAuICR0aGlzLT53aGVlbHMgLiAiINC60L7Qu9C10YHQsCI7CiAgICB9CgoKfQoKJGNhciA9IG5ldyBDYXIoKTsKJGJpa2UgPSBuZXcgQmlrZSgpOwoKLyrQn9C+0YHQvNC+0YLRgNC40Lwg0L3QsCDQvtCx0YrQtdC60YLRiyovCmVjaG8gIjxwcmU+IjsKICAgIHByaW50X3IoJGNhcik7CmVjaG8gIjwvcHJlPiI7CgplY2hvICI8cHJlPiI7CiAgICBwcmludF9yKCRiaWtlKTsKZWNobyAiPC9wcmU+IjsKCiRjYXItPmNvdW50V2hlZWxzKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+Y291bnRXaGVlbHMoKTsKZWNobyAiPGJyPiI7CiRjYXItPmNoYW5nZU9pbCgpOwplY2hvICI8YnI+IjsKJGNhci0+Y291bnREb29ycygpOwo=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430 &#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PD9waHAKCmludGVyZmFjZSBPaWxhYmxlIHsKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGFuZ2VPaWwoKTsKfQoKaW50ZXJmYWNlIERvb3JhYmxlIHsKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudERvb3JzKCk7Cn0KCmNsYXNzIENhciBpbXBsZW1lbnRzIE9pbGFibGUsIERvb3JhYmxlIHsKCiAgICBwdWJsaWMgJHdoZWVscyA9IDQ7CgogICAgcHVibGljIGZ1bmN0aW9uIGNvdW50V2hlZWxzKCkgewogICAgICAgIGVjaG8gItCjINC80LDRiNC40L3RiyAiIC4gJHRoaXMtPndoZWVscyAuICIg0LrQvtC70LXRgdCwIjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hhbmdlT2lsKCkgewogICAgICAgIGVjaG8gItCf0L7RgNCwINC80LXQvdGP0YLRjCDQvNCw0YHQu9C+IjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnREb29ycygpIHsKICAgICAgICBlY2hvICLQkiDQvNCw0YjQuNC90LUgMiDQuNC70LggNCDQtNCy0LXRgNC4IjsKICAgIH0KCn0KCmNsYXNzIEJpa2UgewoKICAgIHB1YmxpYyAkd2hlZWxzID0gMjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnRXaGVlbHMoKSB7CiAgICAgICAgZWNobyAi0KMg0LLQtdC70L7RgdC40L\/QtdC00LAgIiAuICR0aGlzLT53aGVlbHMgLiAiINC60L7Qu9C10YHQsCI7CiAgICB9CgoKfQoKJGNhciA9IG5ldyBDYXIoKTsKJGJpa2UgPSBuZXcgQmlrZSgpOwoKLyrQn9C+0YHQvNC+0YLRgNC40Lwg0L3QsCDQvtCx0YrQtdC60YLRiyovCmVjaG8gIjxwcmU+IjsKICAgIHByaW50X3IoJGNhcik7CmVjaG8gIjwvcHJlPiI7CgplY2hvICI8cHJlPiI7CiAgICBwcmludF9yKCRiaWtlKTsKZWNobyAiPC9wcmU+IjsKCiRjYXItPmNvdW50V2hlZWxzKCk7CmVjaG8gIjxicj4iOwokYmlrZS0+Y291bnRXaGVlbHMoKTsKZWNobyAiPGJyPiI7CiRjYXItPmNoYW5nZU9pbCgpOwplY2hvICI8YnI+IjsKJGNhci0+Y291bnREb29ycygpOwo=[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.2&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today lesson we will discuss abstract classes and interfaces in php and talk about difference between it. Abstract classes are implements with adding key word abstract. Abstract classes can have properties and methods. But unlike simple classes methods in abstract classes have not body. Key concept of abstract methods is you must implement these [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[273,219],"tags":[],"class_list":["post-27340","post","type-post","status-publish","format-standard","hentry","category-php","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP. OOP. Abstract classes and interfaces - Kamil Abzalov&#039;s blog<\/title>\n<meta name=\"description\" content=\"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP. OOP. Abstract classes and interfaces - Kamil Abzalov&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-25T20:30:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-10T20:57:09+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"PHP. OOP. Abstract classes and interfaces\" \/>\n<meta name=\"twitter:description\" content=\"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"PHP. OOP. Abstract classes and interfaces\",\"datePublished\":\"2017-11-25T20:30:53+00:00\",\"dateModified\":\"2020-04-10T20:57:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/\"},\"wordCount\":1373,\"commentCount\":0,\"articleSection\":[\"PHP\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/\",\"name\":\"PHP. OOP. Abstract classes and interfaces - Kamil Abzalov's blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2017-11-25T20:30:53+00:00\",\"dateModified\":\"2020-04-10T20:57:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/php\\\/abstract-classes-and-interfaces\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP. OOP. Abstract classes and interfaces\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP. OOP. Abstract classes and interfaces - Kamil Abzalov's blog","description":"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/","og_locale":"en_US","og_type":"article","og_title":"PHP. OOP. Abstract classes and interfaces - Kamil Abzalov's blog","og_description":"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2017-11-25T20:30:53+00:00","article_modified_time":"2020-04-10T20:57:09+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"PHP. OOP. Abstract classes and interfaces","twitter_description":"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"PHP. OOP. Abstract classes and interfaces","datePublished":"2017-11-25T20:30:53+00:00","dateModified":"2020-04-10T20:57:09+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/"},"wordCount":1373,"commentCount":0,"articleSection":["PHP","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/","name":"PHP. OOP. Abstract classes and interfaces - Kamil Abzalov's blog","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2017-11-25T20:30:53+00:00","dateModified":"2020-04-10T20:57:09+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"Today we will talk about abstract classes and interfaces. Also we discuss difference between it.","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/php\/abstract-classes-and-interfaces\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"PHP. OOP. Abstract classes and interfaces"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/27340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=27340"}],"version-history":[{"count":7,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/27340\/revisions"}],"predecessor-version":[{"id":31952,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/27340\/revisions\/31952"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=27340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=27340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=27340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}