Perbezaan antara kelas abstrak dan antara muka

Perbezaan antara kelas abstrak dan antara muka

Kelas Abstrak vs antara muka

Kelas dan antara muka abstrak adalah dua konstruk berorientasikan objek yang terdapat dalam banyak bahasa pengaturcaraan berorientasikan objek seperti Java. Kelas Abstrak boleh dianggap sebagai versi abstrak kelas biasa (konkrit), sementara antara muka boleh dianggap sebagai cara melaksanakan kontrak. Kelas Abstrak adalah kelas yang tidak dapat diinisialisasi tetapi boleh dilanjutkan. Antara muka adalah jenis yang perlu dilaksanakan oleh kelas lain. Di Java, kelas abstrak diisytiharkan menggunakan kata kunci abstrak, sementara kata kunci antara muka digunakan untuk menentukan antara muka.

Apa itu kelas abstrak?

Biasanya, kelas abstrak, juga dikenali sebagai kelas asas abstrak (ABC), tidak dapat ditandakan (contoh kelas itu tidak dapat dibuat). Oleh itu, kelas abstrak hanya bermakna jika bahasa pengaturcaraan menyokong warisan (keupayaan untuk membuat subkelas daripada memperluaskan kelas). Kelas abstrak biasanya mewakili konsep abstrak atau entiti dengan pelaksanaan separa atau tidak. Oleh itu, kelas abstrak bertindak sebagai kelas induk dari mana kelas kanak -kanak diperoleh supaya kelas kanak -kanak akan berkongsi ciri -ciri yang tidak lengkap dari kelas induk dan fungsi dapat ditambah untuk menyelesaikannya.

Kelas abstrak mungkin mengandungi kaedah abstrak. Subkelas Memperluas Kelas Abstrak Boleh Melaksanakan Kaedah Abstrak (Diwarisi). Sekiranya kelas kanak -kanak melaksanakan semua kaedah abstrak seperti itu, ia adalah kelas konkrit. Tetapi jika tidak, kelas kanak -kanak juga menjadi kelas abstrak. Apa maksudnya ialah, apabila pengaturcara menamakan kelas sebagai abstrak, dia mengatakan bahawa kelas akan tidak lengkap dan ia akan mempunyai unsur -unsur yang perlu diselesaikan oleh subkelas yang mewarisi. Ini adalah cara yang baik untuk membuat kontrak antara dua pengaturcara, yang memudahkan tugas dalam pembangunan perisian. Pengaturcara, yang menulis kod untuk mewarisi, perlu mengikuti definisi kaedah dengan tepat (tetapi tentu saja boleh mempunyai pelaksanaannya sendiri).

Apa itu antara muka?

Antara muka adalah jenis abstrak yang digunakan untuk menentukan kontrak yang harus dilaksanakan oleh kelas, yang melaksanakan antara muka itu. Kata kunci antara muka digunakan untuk menentukan antara muka dan melaksanakan kata kunci digunakan untuk melaksanakan antara muka oleh kelas (dalam bahasa pengaturcaraan Java). Biasanya, antara muka hanya akan mengandungi tandatangan kaedah dan pengisytiharan yang berterusan. Sebarang antara muka yang melaksanakan antara muka tertentu harus melaksanakan semua kaedah yang ditakrifkan dalam antara muka, atau harus diisytiharkan sebagai kelas abstrak. Di Java, jenis rujukan objek boleh ditakrifkan sebagai jenis antara muka. Tetapi objek itu mestilah sama ada atau harus memegang objek kelas, yang melaksanakan antara muka tertentu. Menggunakan Kata Kata Kunci di Java, anda boleh melaksanakan pelbagai antara muka ke kelas tunggal.

Apakah perbezaan antara kelas abstrak dan antara muka?

Kelas abstrak biasanya mewakili konsep abstrak atau entiti dengan pelaksanaan separa atau tidak. Sebaliknya, antara muka adalah jenis abstrak yang digunakan untuk menentukan kontrak yang harus dilaksanakan oleh kelas. Kelas abstrak harus diwarisi (atau dilanjutkan), sementara antara muka harus dilaksanakan. Kelas abstrak mungkin mengandungi kaedah abstrak, sedangkan antara muka hanya boleh mengandungi kaedah abstrak. Kelas Abstrak boleh mengandungi sebarang pembolehubah, tetapi antara muka hanya dapat menentukan pemalar. Kelas tidak boleh mewarisi dari lebih daripada satu kelas abstrak tetapi boleh melaksanakan pelbagai antara muka. Antara muka tidak dapat melaksanakan antara muka yang lain. Walau bagaimanapun antara muka boleh memanjangkan kelas.