Rumah  >  Artikel  >  Java  >  Menggunakan kelas abstrak

Menggunakan kelas abstrak

Linda Hamilton
Linda Hamiltonasal
2024-09-21 14:17:021116semak imbas

Usando classes abstratas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn