Dalam Pemrograman Berorientasi Obyek (PBO), memungkinkan kita dapat membuat method yang sifatnya abstrak, atau belum terdefinisikan detilnya, di mana tujuannya adalah untuk menyederhanakan ide solusi dari permasalahan. Melalui konsep ini, kita bisa memikirkan secara global terlebih dahulu struktur dan karakteristik dari obyek, barulah kemudian dipikirkan detilnya.
Keberadaan method abstrak bisa terdapat dalam dua tempat, yaitu bisa terdapat dalam sebuah class, yang selanjutnya class tersebut disebut dengan class abstrak, dan juga bisa terdapat dalam sebuah interface.
Dari kedua hal di atas, apa perbedaan keduanya? Perbedaan dari keduanya adalah pada implementasinya. Pada class abstrak implementasinya hanya bisa di dalam pewarisan (inheritance), artinya semua method-method yang masih abstrak milik class abstrak hanya bisa diimplementasikan di subclass nya. Adapun pada interface, tidak. Method abstrak di dalam interface bisa diimplementasikan pada sembarang class.
Artikel ini akan membahas lebih detil tentang interface, karakteristiknya, dan bagaimana contoh penerapannya di Java.