Belajar Bahasa Pemrograman Dart : Implicit Interface

Dhe997

Implicit Interface

Selain abstract class, cara lain yang bisa kita gunakan untuk menerapkan abstraksi dalam OOP adalah dengan interface
Interface atau antarmuka merupakan set instruksi yang bisa diimplementasi oleh objek. Secara umum, interface berfungsi sebagai penghubung antara sesuatu yang abstrak dengan sesuatu yang nyata.
Bayangkan remote TV atau tombol yang ada di HP Anda. Tombol-tombol ini bisa kita sebut sebagai interface. Kita tak perlu tahu dan peduli tentang bagaimana fungsi yang ada di dalamnya.
Dart tidak memiliki keyword atau syntax untuk mendeklarasikan interface seperti bahasa pemrograman OOP lainnya. Setiap class di dalam Dart dapat bertindak sebagai interface

Maka dari itu interface pada Dart dikenal sebagai implicit interface. Untuk mengimplementasikan interface, gunakan keyword implements. Kita bisa mengimplementasikan beberapa interface sekaligus pada satu kelas.


  1. class ClassName implements InterfaceName



Setelah kelas mengimplementasikan interface, maka kelas tersebut wajib mengimplementasikan semua metode yang ada di dalam interface. Misalnya kita buat baru kelas baru bernama Flyable yang akan bertindak sebagai interface.


  1. class Flyable {

  2.   void fly() { }

  3. }



Kita dapat membiarkan body dari method fly() tetap kosong karena fungsi implementasinya akan dilakukan oleh class. Selanjutnya buat kelas baru yang mengimplementasi interface Flyable.


  1. class Bird extends Animal implements Flyable {

  2.   String featherColor;

  3.  

  4.   Bird(String name, int age, double weight, this.featherColor) : super(name, age, weight);

  5.  

  6. }



Anda akan mendapati eror yang memberikan pesan “Missing concrete implementation of Flyable.fly”. Ini artinya kita harus mengimplementasi fungsi fly yang terdapat pada interface Flyable.


  1. class Bird extends Animal implements Flyable {

  2.   String featherColor;

  3.  

  4.   Bird(String name, int age, double weight, this.featherColor) : super(name, age, weight);

  5.  

  6.   @override

  7.   void fly() {

  8.     print('$name is flying');

  9.   }

  10.  

  11. }



Keyword atau anotasi @override menunjukkan fungsi tersebut mengesampingkan fungsi yang ada di interface atau kelas induknya, lalu menggunakan fungsi yang dalam kelas itu sendiri sebagai gantinya

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.