Keutamaan untuk antara muka sebagai jenis rujukan:
Jika wujud antara muka yang sesuai, anda harus merujuk objek melaluinya dan bukannya kelas konkrit.
Ini terpakai pada parameter, nilai pulangan, pembolehubah dan medan.
Fleksibiliti apabila menggunakan antara muka:
Menggunakan antara muka membolehkan anda menukar pelaksanaan tanpa menjejaskan kod.
Contoh: menukar daripada LinkedHashSet kepada HashSet atau TreeSet, cuma tukar pembina.
Bila TIDAK menggunakan antara muka:
Kefungsian khusus pelaksanaan:
Jika pelaksanaan menawarkan sesuatu yang tidak diperlukan oleh antara muka (cth. LinkedHashSet menjamin susunan lelaran, tetapi HashSet tidak).
Tanpa antara muka yang betul:
Sesetengah kelas seperti String atau BigInteger tidak mempunyai antara muka yang setara dan mesti digunakan secara langsung.
Rangka kerja berasaskan kelas:
Contoh: OutputStream dalam pakej java.io dirujuk melalui kelas abstrak, bukan antara muka.
Kaedah khusus pelaksanaan:
Contoh: PriorityQueue melaksanakan Queue, tetapi mempunyai kaedah comparator() tidak terdapat dalam Queue. Hanya gunakan kelas jika anda memerlukan kaedah tambahan ini.
Faedah:
Menggunakan antara muka menjadikan program lebih fleksibel dan modular, membolehkan anda menukar pelaksanaan dengan mudah tanpa melanggar kod sedia ada.
Contoh Kod
Contoh yang baik: Gunakan antara muka sebagai jenis
Set<String> s = new LinkedHashSet<>();
Contoh buruk: Menggunakan kelas konkrit sebagai jenis
LinkedHashSet<String> s = new LinkedHashSet<>();
Fleksibiliti: Menukar pelaksanaan tanpa menjejaskan kod
Set<String> s = new TreeSet<>();
Contoh menggunakan kelas akhir seperti String
String str = "Hello";
Contoh menggunakan kelas asas rangka kerja
OutputStream output = new FileOutputStream("file.txt");
Atas ialah kandungan terperinci Objek Rujukan Item melalui antara muka mereka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!