Apa itu Antarmuka di C# beserta Contohnya
โก Ringkasan Cerdas
Antarmuka di C# mendefinisikan sebuah kontract yang menentukan metode dan properti mana yang harus diimplementasikan oleh suatu kelas, tanpa memberikan kode sebenarnya. Kelas pengimplementasikan menyediakan perilaku konkret, memungkinkan kopling longgar dan pewarisan berganda di antara tipe yang tidak terkait.

Apa itu Antarmuka di C#?
An Antarmuka Dalam C#, digunakan bersama dengan sebuah kelas untuk mendefinisikan sebuah kon.tracIni adalah kesepakatan tentang apa yang akan diberikan kelas tersebut kepada sebuah aplikasi. Antarmuka mendefinisikan operasi apa yang dapat dilakukan oleh suatu kelas. Antarmuka mendeklarasikan properti dan metode. Terserah kelas tersebut untuk mendefinisikan secara tepat apa yang akan dilakukan oleh metode tersebut.
Mari kita lihat contoh antarmuka dengan mengubah kelas di aplikasi Konsol kita. Perhatikan bahwa kami tidak akan menjalankan kode tersebut karena tidak ada yang dapat dijalankan menggunakan antarmuka.
Contoh Antarmuka C#
Mari kita buat kelas antarmuka. Kelas tersebut akan diberi nama โGuru99Interface.โ Kelas utama kita kemudian akan memperluas antarmuka yang telah didefinisikan. Semua kode perlu ditulis dalam file Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { interface IGuru99Interface { void SetTutorial(int pID, string pName); String GetTutorial(); } class Guru99Tutorial : IGuru99Interface { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.SetTutorial(1,".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Penjelasan:-
Di sini, kami menjelaskan bagian penting dari kode tersebut
- Pertama-tama kita mendefinisikan sebuah antarmuka yang disebut โGuru99Antarmuka.โ Perhatikan bahwa kata kunci โantarmukaโ digunakan untuk mendefinisikan sebuah antarmuka.
- Berikutnya, kita mendefinisikan metode yang akan digunakan oleh antarmuka kita. Dalam kasus ini, kita mendefinisikan metode yang sama yang digunakan dalam semua contoh sebelumnya. Perhatikan bahwa antarmuka hanya mendeklarasikan metode. Antarmuka tidak mendefinisikan kode di dalamnya.
- Kemudian kami membuat GuruKelas Tutorial 99 memperluas antarmuka. Di sinilah kita menulis kode yang mendefinisikan berbagai metode yang dideklarasikan dalam antarmuka. Pengkodean semacam ini mencapai hal-hal berikut.
- Hal ini memastikan bahwa kelas tersebut, Guru99Tutorial hanya menambahkan kode yang diperlukan untuk metode โSetTutorialโ dan โGetTutorialโ dan tidak ada yang lain.
- Hal ini juga memastikan bahwa antarmuka berperilaku seperti sebuah contract. Itu kelas harus mematuhi contract. Jadi jika contracJika dikatakan bahwa seharusnya ada dua metode yang disebut โSetTutorialโ dan โGetTutorial,โ maka begitulah seharusnya.
Antarmuka C# vs AbstracKelas t
Pertanyaan umum bagi pemula adalah bagaimana antarmuka C# berbeda dari antarmuka lainnya. abstrackelas tKeduanya mendefinisikan sebuah kontracMeskipun tipe lain mengikutinya, mereka memiliki tujuan desain yang berbeda.
Perbedaan utama tercantum di bawah ini:
- Implementasi: Sebuah antarmuka hanya berisi deklarasi, sedangkan sebuah absoluttracKelas T dapat memberikan abstracanggota t dan metode yang diimplementasikan sepenuhnya.
- Pewarisan berganda: Suatu kelas dapat mengimplementasikan banyak antarmuka tetapi hanya dapat mewarisi satu atribut.trackelas t.
- Negara: Otot peruttracKelas dapat menyimpan field, konstruktor, dan properti dengan data, sedangkan antarmuka tidak dapat menyimpan status instance.
- Pengubah akses: AbstracAnggota kelas t dapat bersifat publik, terlindungi, atau privat, sedangkan anggota antarmuka klasik secara implisit bersifat publik.
- Gunakan kasus: Gunakan antarmuka untuk menambahkan kemampuan di berbagai tipe yang tidak terkait, dan sebuah abstracKelas t untuk berbagi kode umum di antara tipe-tipe yang terkait erat.
Singkatnya, sebuah antarmuka menjelaskan apa yang dapat dilakukan oleh sebuah kelas, sedangkan sebuah abstraksitracKelas t juga dapat mendefinisikan sebagian dari cara pelaksanaannya.
Cara Mengimplementasikan Beberapa Antarmuka di C#
Tidak seperti pewarisan kelas, C# memungkinkan satu kelas untuk mengimplementasikan lebih dari satu antarmuka. Inilah mengapa bahasa ini menawarkan bentuk pewarisan berganda yang aman tanpa ambiguitas yang muncul dari mewarisi beberapa kelas dasar sekaligus.
Untuk mengimplementasikan beberapa antarmuka, cantumkan antarmuka-antarmuka tersebut setelah nama kelas dan pisahkan masing-masing dengan koma. Kelas tersebut kemudian harus mendefinisikan setiap metode yang dideklarasikan dalam setiap antarmuka yang diimplementasikannya.
Langkah 1) Deklarasikan dua antarmuka, masing-masing dengan metodenya sendiri.
Langkah 2) Buat kelas yang mengimplementasikan kedua antarmuka tersebut, pisahkan nama antarmuka dengan koma.
Langkah 3) Sediakan isi metode untuk setiap anggota yang dideklarasikan di setiap antarmuka.
Contoh di bawah ini menunjukkan kelas Dokumen yang mengimplementasikan IReadable dan antarmuka IWritable.
using System; namespace DemoApplication { interface IReadable { void Read(); } interface IWritable { void Write(); } class Document : IReadable, IWritable { public void Read() { Console.WriteLine("Reading the document"); } public void Write() { Console.WriteLine("Writing to the document"); } static void Main(string[] args) { Document doc = new Document(); doc.Read(); doc.Write(); Console.ReadKey(); } } }
Code Penjelasan:-
- Kita mendeklarasikan dua antarmuka, IReadable dan IWritable. Setiap antarmuka mendeklarasikan satu metode tanpa isi.
- Kelas Document mencantumkan kedua antarmuka setelah titik dua, dipisahkan oleh koma, sehingga kelas tersebut setuju untuk menghormati kedua konsep tersebut.tracts.
- Kelas tersebut kemudian mendefinisikan metode Read dan Write. Lewatiping Kedua metode tersebut akan menyebabkan kesalahan saat kompilasi.
- Metode Main membuat objek Document dan memanggil kedua metode tersebut, membuktikan bahwa kelas tersebut memenuhi kedua antarmuka.
Saat program dijalankan, program akan mencetak Membaca dokumen pada baris pertama dan Menulis ke dokumen pada baris kedua. Pola ini menjaga setiap kontracUkurannya kecil dan terfokus, sehingga kelas Document lebih mudah diuji dan diperluas.
Keunggulan Menggunakan Antarmuka di C#
Interface banyak digunakan dalam proyek C# profesional karena membuat kode lebih fleksibel dan mudah dipelihara. Interface memungkinkan Anda memprogram sesuai dengan standar yang ditetapkan.tracalih-alih ke kelas konkret.
Keuntungan utama meliputi:
- Kopling longgar: Code Hal ini bergantung pada antarmuka, bukan kelas tertentu, sehingga implementasi dapat berubah tanpa merusak fungsi pemanggil.
- Pewarisan berganda: Suatu kelas dapat mewarisi perilaku dari beberapa antarmuka, yang tidak dimungkinkan oleh pewarisan kelas biasa.
- Kemampuan untuk diuji: Antarmuka memudahkan penggantian kelas sungguhan dengan objek tiruan selama pengujian unit.
- Injeksi ketergantungan: Framework menyuntikkan implementasi antarmuka pada saat runtime, sebuah ide inti di balik prinsip-prinsip SOLID.
- Konsistensi: Setiap kelas yang mengimplementasikannya wajib menyediakan kumpulan anggota yang sama, sehingga API tetap dapat diprediksi.
Karena manfaat-manfaat tersebut, antarmuka menjadi inti dari sebagian besar pola desain C# modern dan kerangka kerja aplikasi.

