C# : Memahami Interface

Reading Time: 3 minutes

Purwarupa Class

Interface adalah purwarupa(prototipe) sebuah class dan sepenuhnya abstrak. Maksud sepenuhnya abstrak adalah tidak ada implementasi apa pun di dalamnya. Contohnya, di dalamnya kita hanya bisa mendefinisikan method tanpa implementasinya. Artinya, kita hanya bisa menuliskan modifier, nilai balikan, nama, dan paramater method jika ada.

Interface adalah class yang sepenuhnya tidak diimplementasikan, class turunannya yang harus mengimplementasikannya. Segala sesuatu yang didefinisikan di dalamnya bisa dianggap sebagai sebuah kontrak yang harus dipenuhi oleh class turunan yang mewarisinya. Contohnya, ketika sebuah interface bernama “IKendaraan” mendefinisikan method “menyala()” dan “maju()” tanpa impelementasi, maka ketika ada class yang mewarisinya, class tersebut harus melakukan implementasi kedua method tersebut.

Ketika class Mobil mewarisi IKendaraan, maka class mobil harus melakukan implementasi semua method yang didefinisikan oleh IKendaraan. Kalau tidak, maka code editor akan memberikan pesan error dan kalau kita tetap memaksa untuk melakukan build source code, akan terjadi kegagalan build dengan pesan error yang sama.

Code editor memberitahukan bahwa class mobil belum mengimplementasikan method maju()
Ketika dilakukan build, code edtior akan menampilkan pesan error bahwa class Mobil belum mengimplementasikan method maju()

Selain method, kita juga bisa mendefinisikan properties, indexer dan event. Pada tulisan ini saya tidak akan memberikan contohnya, supaya kita fokus ke pemahaman dasarnya dengan kasus interface yang hanya berisi method.

Contoh Source Code Lengkap

Sebuah Tipe

Dalam Object Oriented Programming, sebuah class dan interface bisa dipandang sebagai sebuah tipe. Ketika suatu class mewarisi sebuah interface, maka class tersebut akan memiliki tipe interface tersebut. Maksudnya begini, kalian tahu tipe seperti string dan int? nah, interface juga bisa dipandang sebagai tipe seperti tipe-tipe tersebut.

Sebuah Class Bisa Mewarisi Lebih dari Satu Interface

C# menganut konsep pewarisan tunggal(single inheritance), sebuah class hanya bisa mewarisi satu class. Tapi di C#, sebuah class bisa mewarisi lebih dari satu interface. Kita bisa melakukan pewarisan jamak(multiple inheritance) dengan pendekatan menggunakan interface. Silahkan baca tulisan saya tentang multiple inheritance agar lebih faham.

Keuntungan Menggunakan Interface

  1. Sebuah class bisa mewarisi interface lebih dari satu. Semakin banyak sebuah class mewarisi interface, maka semakin banyak juga tipe yang dimiliki class tersebut.
  2. Sebuah class yang mewarisi interface “dipaksa” mengimplementasikan semua method yang didefinisikan di dalam interface yang diwarisinya tersebut. Artinya, sebuah class yang mewarisi interface bisa dipastikan mengimplementasikan method yang didefinisikan di dalam interface.

Kedua poin tersebut masih belum bisa menjelaskan keuntungan menggunakan sebuah interface. Diperlukan tulisan lain yang lebih detail, lengkap dengan contoh implementasinya. Tulisan ini hanya berfokus pada pemahaman dasarnya saja. Untuk pembahasan lebih detail kalian bisa baca tulisan saya mengenai Dependency Injection dan Multiple Inheritance.

Bagikan artikel

Tinggalkan Balasan

  1. Ping-balik: Dependency Injection Pada Bahasa C# - Kehidupan Seorang Programmer{}

  2. Ping-balik: Dependency Injection Pada Bahasa C#