Menggunakan kelas abstrak
Apakah itu kelas abstrak?
- Kelas abstrak berfungsi sebagai kelas asas yang tidak boleh digunakan secara langsung. Ia digunakan untuk mencipta bentuk umum kelas, membenarkan subkelas menyediakan pelaksanaan tertentu bagi beberapa kaedah.
- Kaedah abstrak dalam kelas abstrak diisytiharkan tetapi tidak mempunyai pelaksanaan dalam kelas asas. Subkelas diperlukan untuk menyediakan pelaksanaan konkrit.
Bila hendak menggunakan kelas abstrak?
- Gunakan kelas abstrak apabila anda ingin menjamin bahawa fungsi tertentu semestinya dilaksanakan oleh subkelas.
- Contoh biasa ialah kelas bentuk geometri abstrak yang menyediakan tandatangan untuk kaedah area(), tetapi meninggalkan tanggungjawab untuk mentakrifkan cara mengira kawasan kepada subkelas, seperti Segitiga dan Segiempat.
Pelaksanaan dengan contoh TwoDShape:
Lihat contoh dalam Pakej Abstraksi
Penjelasan Kod:
Kelas Abstrak DuaDShape:
- Ditakrifkan sebagai abstrak kerana tidak masuk akal untuk melaksanakan kawasan() secara langsung. Setiap bentuk geometri tertentu (seperti segi tiga atau segi empat tepat) mesti menyediakan pelaksanaan sendiri tentang cara mengira luas.
- Kaedah kawasan() diisytiharkan sebagai abstrak, memaksa subkelas untuk melaksanakan versi kaedah ini.
Subkelas Segitiga dan Segi Empat:
- Kedua-dua subkelas mewarisi daripada TwoDShape dan diperlukan untuk melaksanakan kaedah kawasan().
- Segitiga mengira luas dengan asas formula * tinggi / 2.
- Segi empat tepat mengira luas dengan formula lebar * tinggi.
Kelas AbsShape:
- Menunjukkan polimorfisme dengan kelas abstrak. Kaedah kawasan() dipanggil polimorfik dan versi kaedah yang betul dilaksanakan bergantung pada jenis objek (Segitiga atau Segi Empat).
Atas ialah kandungan terperinci Menggunakan kelas abstrak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...
