⊗ppOpIfInr 65 of 107 menu

Interface dalam OOP di PHP

Seperti yang sudah Anda ketahui, kelas abstrak merepresentasikan seperangkat metode untuk keturunannya. Sebagian dari metode ini dapat diimplementasikan dalam kelas itu sendiri, dan sebagian metode lainnya dapat dideklarasikan sebagai abstrak dan memerlukan implementasi di kelas turunan.

Bayangkan sebuah situasi di mana kelas abstrak Anda hanya merupakan kumpulan metode abstrak publik, tanpa menambahkan metode dengan implementasi.

Secara faktual, kelas induk Anda menggambarkan interface dari keturunannya, yaitu kumpulan metode publik mereka yang wajib untuk diimplementasikan.

Mengapa kita membutuhkan ini: untuk melakukan lebih sedikit kesalahan saat memprogram - dengan mendeskripsikan semua metode yang diperlukan di kelas induk, kita dapat yakin bahwa semua keturunan benar-benar mengimplementasikannya.

Kapan ini membantu: katakanlah kita membuat kelas induk kita dan beberapa keturunan untuknya. Jika kemudian setelah beberapa waktu, misalnya, sebulan kemudian, kita memutuskan untuk membuat satu lagi keturunan, pasti kita akan lupa detail kode kita dan sangat mungkin kita lupa menulis implementasi dari beberapa metode dalam keturunan baru tersebut. Namun, PHP sendiri tidak akan membiarkan metode tersebut hilang - dan hanya akan memberikan error.

Hal yang sama berlaku untuk programmer lain, yang bekerja dengan proyek Anda. Katakanlah kode kelas induk ditulis oleh Anda, dan kemudian rekan Anda memutuskan untuk membuat satu keturunan lagi. Rekan Anda juga tidak akan bisa kehilangan beberapa metode.

Namun, ada masalah: secara faktual kita membuat kelas induk kita untuk menulis metode abstrak publik di dalamnya, tetapi kita sendiri atau rekan kita memiliki kemungkinan untuk secara tidak sengaja menambahkan ke kelas ini metode yang bukan publik atau bukan abstrak.

Katakanlah kita ingin secara fisik melarang membuat metode lain dalam induk, selain metode abstrak publik. Di PHP, untuk ini, alih-alih kelas abstrak, kita dapat menggunakan interface.

Interface merepresentasikan kelas, yang mana semua metodenya adalah publik dan tidak memiliki implementasi. Kode metode harus diimplementasikan oleh kelas-kelas yang merupakan keturunan dari interface.

Interface dideklarasikan dengan cara yang sama seperti kelas biasa, tetapi menggunakan kata kunci interface sebagai pengganti kata class.

Untuk pewarisan dari interface, digunakan terminologi yang sedikit berbeda: dikatakan bahwa kelas tidak mewarisi dari interface, tetapi mengimplementasikan mereka. Oleh karena itu, sebagai pengganti kata extends harus menggunakan kata kunci implements.

Tidak dapat membuat objek dari interface. Semua metode interface harus dideklarasikan sebagai public dan tidak boleh memiliki implementasi. Sebuah interface hanya dapat memiliki metode, bukan properti. Juga tidak dapat membuat interface dan kelas dengan nama yang sama.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak