Perbedaan antara kelas abstrak dan antarmuka

Perbedaan antara kelas abstrak dan antarmuka

Kelas abstrak vs. Antarmuka

Kelas abstrak (atau tipe) adalah jenis dalam sistem tipe nominatif yang dinyatakan oleh program. Meskipun namanya menyiratkan, kelas abstrak mungkin atau mungkin tidak termasuk metode atau sifat abstrak. Kelas Perbedaan mengacu pada konstruksi bahasa yang berbeda yang dapat digunakan untuk mengimplementasikan tipe abstrak. Kelas abstrak dapat ditandai dengan masalah desain yang sesuai dengan pemrograman berorientasi objek terbaik dan oleh sifatnya yang belum selesai.

Antarmuka adalah tipe abstrak yang harus diterapkan oleh kelas untuk menentukan antarmuka (secara umum). Antarmuka hanya dapat berisi tanda tangan metode dan deklarasi konstan (baik statis maupun final), tidak pernah definisi metode. Antarmuka mensimulasikan beberapa warisan dan digunakan untuk menyandikan kesamaan yang dibagikan di antara berbagai jenis kelas.

Tipe abstrak dapat dibuat, ditandai, atau disimulasikan dalam beberapa cara berbeda. A programmer can signify abstract types by using the keyword abstract explicitly, by including one or more methods in the class definition, inheriting from another abstract type without overriding missing features necessary to complete the class definition, or by sending a particular method to the object oriented Bahasa pemrograman yang dikenal sebagai ini yang tidak mengimplementasikan metode ini secara langsung.

Antarmuka dapat didefinisikan menggunakan metode abstrak. Kelas juga dapat diimplementasikan dalam antarmuka. Jika suatu kelas menerapkan antarmuka dan tidak menerapkan semua metodenya, abstrak penanda harus digunakan, jika tidak, penanda tidak diperlukan (karena semua antarmuka secara inheren abstrak). Kelas juga dapat menerapkan beberapa antarmuka.

Sementara antarmuka digunakan untuk menentukan antarmuka generik, tipe abstrak dapat digunakan untuk mendefinisikan dan menegakkan protokol (yang merupakan seperangkat operasi yang semua objek yang mengimplementasikan protokol yang diinginkan harus didukung). Tipe abstrak tidak terjadi dalam bahasa tanpa subtipe. Karena subtipe seperti itu dipaksa untuk mengimplementasikan semua fungsi yang diperlukan, memastikan kebenaran eksekusi program. Ada beberapa cara di mana tipe abstrak dapat dibuat: kelas dasar abstrak penuh adalah kelas yang secara eksplisit dinyatakan sebagai abstrak atau mengandung metode abstrak (tidak diimplementasikan); Sistem objek LISP yang umum termasuk mixin yang didasarkan pada sistem Flavours; Java, tentu saja; dan ciri -ciri, yang bertindak sebagai perpanjangan ke Smalltalk.

Ringkasan:
1. Kelas abstrak (atau jenis) mendeklarasikan program; Antarmuka adalah tipe abstrak yang harus diimplementasikan semua kelas untuk menentukan antarmuka mereka.
2. Tipe abstrak dapat ditandai menggunakan kata kunci secara eksplisit; Antarmuka secara inheren abstrak, oleh karena itu tidak perlu ditandai menggunakan kata kunci sama sekali (kecuali kelas tertentu mengimplementasikan antarmuka tetapi tidak menerapkan semua metodenya).