Video: Magic Ice - KIR MTs Negeri Kota Batu, Jawa Timur 2024
Kedua antarmuka dan kelas abstrak memiliki metode abstrak di Jawa. Tapi metode abstrak memainkan peran yang sedikit berbeda dalam kedua jenis jenis referensi ini. Bagaimana Anda bisa menyimpan semuanya dalam benak Anda?
Hal pertama yang harus dilakukan adalah mengingat bahwa tidak ada yang belajar tentang konsep pemrograman berorientasi obyek tanpa banyak berlatih dalam menulis kode. Jika Anda r Anda bingung, itu mungkin hal yang baik. Itu berarti Anda sudah cukup mengerti untuk mengetahui betapa rumitnya hal ini. Semakin banyak kode yang Anda tulis, semakin nyaman Anda menjadi kelas, antarmuka, dan semua gagasan lainnya.
Hal berikutnya yang harus dilakukan adalah memilah perbedaan cara Anda mendeklarasikan metode abstrak. Inilah ceritanya.
Dalam Kelas Biasa (Non-Abstrak) | Dalam sebuah Antarmuka | Dalam sebuah Kelas Abstrak | |
Apakah metode abstrak diperbolehkan? | Tidak | Ya | Ya |
Dapatkah deklarasi metode berisi kata kunci abstrak ? | Tidak | Ya | Ya |
Dapatkah deklarasi metode berisi kata kunci default (artinya "tidak abstrak")? | Tidak | Ya | Tidak |
Tidak dengan abstrak atau default | Tidak abstrak | Abstrak | Tidak abstrak |
Kedua antarmuka dan kelas abstrak memiliki metode abstrak. Jadi Anda mungkin bertanya-tanya bagaimana Anda harus memilih antara mendeklarasikan sebuah antarmuka dan mendeklarasikan kelas abstrak. Sebenarnya, Anda mungkin bertanya kepada tiga programmer profesional bagaimana antarmuka dan kelas abstrak berbeda satu sama lain. Jika Anda melakukannya, Anda mungkin mendapatkan lima jawaban berbeda. (Ya, lima jawaban, bukan tiga jawaban.)
Antarmuka dan kelas abstrak adalah binatang yang sama, dan fitur baru di Java 8 membuat mereka lebih mirip daripada versi Java sebelumnya. Tapi ide dasarnya adalah tentang hubungan antar barang.
- Memperluas subkelas mewakili adalah hubungan.
- Menerapkan antarmuka mewakili hubungan dapat melakukan.
Jika Anda menginginkan bukti yang lebih nyata tentang perbedaan antara antarmuka dan kelas abstrak, pertimbangkan ini: Kelas dapat mengimplementasikan banyak antarmuka, namun kelas hanya bisa menjangkau satu kelas lain, bahkan jika kelas itu adalah kelas abstrak. Jadi, setelah Anda mengumumkan
anjing kelas publik memperluas HousePet
Anda juga tidak bisa membuat
Anjing
memperpanjang kelas
Teman
. Tapi Anda bisa membuat
Anjing
menerapkan antarmuka
Befriendable
. Dan kemudian Anda bisa membuat class
Dog
yang sama mengimplementasikan antarmuka
Trainable
.
Dan, jika Anda menginginkan perbedaan nyata antara antarmuka dan kelas abstrak, inilah satu untuk Anda: Antarmuka tidak boleh berisi bidang non-statis dan non-akhir. Jadi di sana. Antarmuka dan kelas abstrak berbeda satu sama lain. Tapi jika Anda baru dalam permainan, Anda seharusnya tidak khawatir dengan bedanya. Bacalah kode sebanyak mungkin, dan jangan takut saat melihat metode abstrak. Itu saja yang ada untuk itu.