Dalam pemrograman berorientasi objek (PBO) atau object oriented programming (OOP), interface adalah sebuah konsep yang memungkinkan kita untuk mendefinisikan metode tanpa implementasinya. Interface berfungsi sebagai kontrak yang harus diimplementasikan oleh kelas yang menggunakannya.
Berdasarkan pengertian tersebut, interface ini sebenarnya mirip dengan konsep abstraksi, namun ada perbedaan dari keduanya. Konsep abstraksi hanya diterapkan pada class-class yang memiliki hubungan pewarisan (inheritance), di mana super class nya yang menjadi class abstrak. Penggunaan class abstrak dalam konsep abstraksi ini bertujuan untuk menggambarkan fitur-fitur dari super class secara umum saja, yang detil fiturnya nanti akan diimplementasikan pada subclassnya. Adapun untuk interface, penerapannya tidak harus pada class-class yang memiliki hubungan pewarisan. Tujuan dari pembuatan class abstrak dalam interface ini adalah untuk menggambarkan sebuah fitur secara umum. Fitur ini nanti bisa diterapkan pada class lainnya secara detil.
Selain itu dalam konsep abstraksi, sebuah subclass hanya boleh terlibat kontrak dengan sebuah class abstrak yang menjadi super classnya. Adapun untuk interface, sebuah class dapat terlibat kontrak dengan beberapa class abstrak.
Bagaimana penerapan interface di Python? akan dibahas tuntas melalui artikel ini.