Apa itu kelas abstrak di PHP?
Bagaimana bisa digunakan?
php
oop
abstract-class
udaya
sumber
sumber
Jawaban:
Kelas abstrak adalah kelas yang berisi setidaknya satu metode abstrak, yang merupakan metode tanpa kode aktual di dalamnya, hanya nama dan parameternya, dan yang telah ditandai sebagai "abstrak".
Tujuannya adalah untuk menyediakan jenis template yang akan diwarisi dan memaksa kelas yang mewarisi untuk mengimplementasikan metode abstrak.
Kelas abstrak dengan demikian adalah sesuatu antara kelas biasa dan antarmuka murni. Juga antarmuka adalah kasus khusus dari kelas abstrak di mana SEMUA metode adalah abstrak.
Lihat bagian manual PHP ini untuk referensi lebih lanjut.
sumber
1. Tidak dapat membuat instance kelas abstrak : Kelas yang didefinisikan sebagai abstrak tidak boleh dibuat, dan kelas apa pun yang berisi setidaknya satu metode abstrak juga harus abstrak.
Contoh di bawah ini:
2. Setiap kelas yang berisi setidaknya satu metode abstrak juga harus abstrak : Kelas abstrak dapat memiliki metode abstrak dan non-abstrak, tetapi harus berisi setidaknya satu metode abstrak. Jika sebuah kelas memiliki setidaknya satu metode abstrak, maka kelas tersebut harus dinyatakan sebagai abstrak.
Contoh di bawah ini:
3. Metode abstrak tidak boleh berisi isi : Metode yang didefinisikan sebagai abstrak hanya mendeklarasikan tanda tangan metode - metode tersebut tidak dapat menentukan implementasi. Tetapi metode non-abstrak dapat menentukan implementasinya.
4. Saat mewarisi dari kelas abstrak, semua metode yang ditandai abstrak dalam deklarasi kelas induk harus ditentukan oleh anak : Jika Anda mewarisi kelas abstrak, Anda harus menyediakan implementasi untuk semua metode abstrak di dalamnya.
5. Visibilitas yang sama (atau kurang dibatasi) : Saat mewarisi dari kelas abstrak, semua metode yang ditandai abstrak dalam deklarasi kelas induk harus ditentukan oleh anak; Selain itu, metode ini harus ditentukan dengan visibilitas yang sama (atau tidak terlalu dibatasi). Misalnya, jika metode abstrak didefinisikan sebagai dilindungi, implementasi fungsi harus didefinisikan sebagai dilindungi atau publik, tetapi tidak pribadi.
6. Tanda tangan metode abstrak harus cocok : Saat mewarisi dari kelas abstrak, semua metode yang ditandai abstrak dalam deklarasi kelas induk harus ditentukan oleh anak; tanda tangan metode harus cocok, yaitu petunjuk jenis dan jumlah yang diperlukan argumen harus sama. Misalnya, jika kelas anak mendefinisikan argumen opsional, sedangkan tanda tangan metode abstrak tidak, tidak ada konflik dalam tanda tangan.
7. Kelas abstrak tidak mendukung multiple inheritance : Kelas abstrak dapat memperluas kelas abstrak lainnya, kelas abstrak dapat menyediakan implementasi antarmuka, tetapi tidak mendukung multiple inheritance.
contoh di bawah ini akan menyebabkan kesalahan Fatal: Kelas 'kuda' tidak ditemukan
sumber
Ada penjelasan bagus tentang itu di sini .
sumber
Kelas Abstrak
1. Berisi metode abstrak
2. Tidak dapat langsung diinisialisasi
3. Tidak dapat membuat objek kelas abstrak
4. Hanya digunakan untuk tujuan pewarisan
Metode Abstrak
1. Tidak dapat berisi tubuh
2. Tidak dapat didefinisikan sebagai privat
3. Kelas anak harus mendefinisikan metode yang dideklarasikan dalam kelas abstrak
Kode Contoh:
Keluaran:
sumber
sumber
Kelas Abstrak adalah kelas-kelas yang tidak dapat dijalankan secara langsung. Atau dengan kata lain kita dapat mengatakan bahwa kelas abstrak adalah kelas-kelas yang objeknya tidak dapat dibuat secara langsung. Dalam kelas abstrak PHP ditentang dengan abstrak kata kunci .
Juga untuk menjadi satu kelas abstrak ateast satu metode kelas harus abstrak.
Untuk detail kelas abstrak Anda bisa merujuk ke blog saya di Kelas Abstrak di PHP .
sumber
Kelas abstrak seperti kelas normal berisi variabel yang berisi variabel terlindungi fungsi yang berisi konstruktor hanya satu hal yang berbeda itu berisi metode abstrak.
Metode abstrak berarti metode kosong tanpa definisi sehingga hanya satu perbedaan dalam kelas abstrak kita tidak dapat membuat objek kelas abstrak
Abstrak harus berisi metode abstrak dan metode tersebut harus didefinisikan di kelas yang mewarisinya.
sumber