Saya seorang pendongeng yang buruk jika saya tidak memiliki tujuan untuk menjelaskan sesuatu yang tidak dapat dipahami kepada seseorang dengan permintaan tertentu, jadi saya memahami hal-hal sederhana, dan untuk satu hal saya akan menulisnya di sini. Saya tidak mengikuti contoh pengajaran JavaRush yang pertama mengajukan pertanyaan dan kemudian memberi tahu Anda cara melakukannya. Saya adalah pendukung pertama-tama menceritakan, lalu bertanya, seperti menceritakan, pertama-tama menunjukkan, dan kemudian menjelaskan.
Antarmuka di Java - 1
BS: Tindakan == perilaku, anggap sebagai sinonim, tindakan lebih mudah dipahami, selalu merupakan sesuatu yang aktif, dan perilaku mungkin tidak menunjukkan apa pun.

antarmuka - antarmuka

Apa ini? Contoh daftar antarmuka (dengan generik):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Antarmuka umum (dari CRUD: Buat, Baca, Perbarui, Hapus). Jangan khawatir, semuanya cukup sederhana. Antarmuka ini berarti bahwa bekerja dengan banyak database didasarkan pada prinsip berikut: Anda perlu menambahkan catatan, memperbarui catatan, menghapus dan menemukan semua catatan. Anda akan melihat ini 100 kali lagi dan Anda akan menulis antarmuka yang hampir sama dengan jumlah yang sama. Ditunjuk sebagai publik karena harus diimplementasikan oleh kelas. Apa maksudnya diimplementasikan oleh sebuah kelas ? Semuanya sangat sederhana: itu harus menjelaskan semua metode antarmuka. Contoh implementasi paling sederhana di kelas:
void add (T t) {
	bookstore.add(t);
}
Alih-alih T t, obat generik tertentu akan diganti. Singkatnya, ini adalah TYPE dari suatu variabel, oleh karena itu paling sering dilambangkan sebagai T = Type. Dalam contoh kita, katakanlah seperti ini:
void add (Book book) {
	bookstore.add(book);
}
Tentu saja, sebagai pengganti Book book Anda dapat mengganti variabel apa pun yang Anda perlukan untuk implementasi Anda. Untuk memahaminya, secara teoritis Anda dapat membayangkan bahwa T = Objek, dan karena di Java semuanya adalah Objek, Anda juga dapat mendefinisikan kelas/variabel mana pun di sana. Satu-satunya masalah akan muncul nanti - pengecualian jika kelasnya nol, dll. Dengan kata lain, ini adalah struktur program tertentu yang mendefinisikan hubungan antar objek dengan membaginya menjadi bagian-bagian perilaku tertentu. Tujuan dari antarmuka adalah untuk mendefinisikan fungsionalitas untuk implementasi oleh suatu kelas. Yaitu penjelasan tentang tanda tangan metode. Di dalam antarmuka terdapat nama metode yang mengembalikan dan memasukkan nilai, dan itu saja. Ya, Anda masih dapat menetapkan beberapa variabel di sana, tetapi variabel tersebut segera menjadi final statis publik secara implisit, dan dapat diakses dari bagian mana pun dari program. Antarmuka menjelaskan tindakan, dan oleh karena itu tindakan yang sama terkandung di dalamnya, yaitu. fungsi atau metode. Mengapa hal ini perlu? Apa yang disederhanakan atau keuntungan apa yang diberikannya? Menyederhanakan deskripsi tindakan dan perilaku. Kami mengatakan apa yang harus dilakukan, namun masing-masing kelas menerapkan cara melakukannya sendiri. Menghemat waktu pada proyek besar. Antarmuka dibuat dalam situasi di mana kita tahu kita perlu melakukan suatu tugas, namun cara melakukannya mungkin berbeda-beda. Antarmuka menjelaskan nama tindakan - ini hanyalah arah dari beberapa abstraksi. Meskipun mungkin juga ada antarmuka tanpa metode dan bidang, seperti penanda seperti Cloneable, Remote, dll. Mari kita ambil contoh mobil favorit semua orang. Antarmuka di dalamnya akan menjelaskan kemungkinan tindakan mobil, memutar setir atau arah pergerakan, penambahan kecepatan, sisa bensin, dll. Artinya, tindakan yang sama yang dapat dilakukan oleh mobil mana pun. Dengan kata lain, kita turun ke dalam hutan degradasi hingga ke tingkat terendah dalam penciptaan mobil pertama dan dengan otak kita sendiri kita mencari tahu bagaimana mobil itu diciptakan dan apa yang dimilikinya. Secara alami, kami menggambarkannya secara abstrak dan hanya untuk tindakan. Apa yang dimiliki mobil pertama? Apakah ada setirnya? Itu artinya berbelok ke suatu tempat, searah dengan setir/pergerakannya. Apakah ada roda? Ya, itu berarti saya mengemudi dengan kecepatan tertentu, perubahan kecepatan. Itulah keseluruhan antarmukanya. Namun secara umum, antarmuka dibuat untuk beberapa implementasi tindakan tertentu. Itu. kami menulis sebuah program untuk program yang lebih spesifik daripada program lain yang dapat Anda pikirkan. Oleh karena itu, antarmukanya sendiri akan berisi metode yang lebih jelas dan spesifik. Tentu saja mereka akan menjadi abstrak mungkin. Antarmuka dapat diwarisi satu sama lain sebagai kelas.
interface MyInterface extends NotMyinterface;
Antarmuka diimplementasikan di kelas. Anda dapat mengimplementasikan antarmuka sebanyak yang Anda suka. Berbeda dengan warisan, warisan hanya dari satu.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Itu. kami membuat beberapa tindakan, memberi mereka nama, memasukkan data, mengembalikan data, menulis semua ini di antarmuka, kemudian membuat kelas dan menambahkan antarmuka kami ke kelas ini, mis. mengimplementasikan antarmuka kami di kelas ini. Selanjutnya, semua metode/fungsi yang dijelaskan dalam antarmuka harus memiliki implementasi. Hal ini dapat dilakukan langsung di antarmuka itu sendiri dengan menambahkan kata default sebelum metode dan menulis implementasi langsung di metode, seperti kelas. Ini menjadi mungkin dengan Java versi 8. Hal ini juga dapat dilakukan di kelas yang akan mengimplementasikan antarmuka ini. Ya, kita sudah menulis antarmukanya, mengimplementasikannya di kelas, meluncurkan implementasi di kelas, kita bisa menjalankannya dan mengujinya. Anda juga dapat membaca di antarmuka tentang:
  • Metode statis.
  • Metode pribadi. (pengulangan kode)
  • Variabel/Konstanta.
  • Antarmuka bersarang.
Tetapi lebih baik melakukan ini nanti, dan mengisi kepala Anda dengan terlalu banyak juga berbahaya. Pertanyaan menarik, apa itu Volvo? Kelas atau Antarmuka?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Selain antarmuka, ada baiknya melanjutkan tentang Kelas Abstrak dan Kelas. Mungkin nanti, ketika saya punya waktu luang beberapa jam lagi. ))) PS: Teman-teman, saya mohon semua kritiknya di bawah postingan atau di PM, saya sangat mengerti bahwa setiap orang memilikinya))) dan saya selalu tertarik mendengarnya, karena ini adalah alasan untuk menjadi sedikit lebih baik dan lagi terus bergerak maju. Oleh karena itu, terima kasih banyak dan semoga sukses dalam pemrograman. )))