Object Interface adalah template untuk class dimana semua method di dalamnya harus diimplementasikan ulang oleh class yang memakainya ( mengimplementasikannya).
Object Interface biasanya disebut hanya interface saja.
Langsung saja ke contoh agar lebih faham :sunglasses:
1. Cara membuat
Sama seperti pembuatan class, hanya saja keyword class ketika pembuatan sebuah class diganti dengan keyword interface
2. Method dalam interface hanya berupa signature
Artinya method hanya berupa nama dan argumennya saja jika ada, tanpa memiliki isi dari method (body)
3. Diimplementasikan dengan keyword implements
Class yang menggunakan (mengimplementasikan) interface, harus menggunakan keyword implements
4. Semua method dalam interface harus diimplementasikan ulang
Jika kode di atas tetap dijalankan maka akan keluar Class Member contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (User::gender)... karena methodgender() tidak diimplementasikan dalam class Member.
5. Satu class boleh mengimplementasikan banyak interface
Satu class boleh mengimplementasikan lebih dari satu interface dengan dipisahkan koma
6. Method dalam interface dan dalam class yang mengimplementasikannya harus public
Jika ini dijalankan maka keluar PHP Fatal error: Access type for interface method User::username() must be omitted in ... karena methodUser::username() tidak di set public.
begitu juga dengan ini, akan keluar PHP Fatal error: Access level to Member::username() must be public (as in class User) in ... karena Member::username() tidak di set public sebagaimana User::username()
7. Interface bisa berupa turunan interface lain
`
8. Boleh mengimplementasikan dua interface walaupun memiliki method sama
Mulai PHP 5.3.9 class diperbolehkan mengimplementasikan dua interface yang memiliki nama method sama, selama method memiliki signature sama.
Ini contoh yang diperbolehkan, karena signature sama
Ini contoh yang tidak diperbolehkan, karena signature berbeda
Mudahkan? coba baca ulang pelan-pelan jika belum faham 📖