Warisan antarmuka adalah mekanisme dalam bahasa komputer tertentu di mana fungsi-fungsi tertentu diwarisi oleh suatu kelas, dan kemudian kelas tertentu itu harus menyediakan implementasi untuk fungsi-fungsi itu agar menjadi lengkap. Antarmuka hanya ada dalam bahasa pemrograman berorientasi objek tertentu. Mereka dapat digunakan untuk meniru pewarisan berganda sementara tidak benar-benar mengizinkan kelas untuk mewarisi pewarisan, karena umumnya tidak ada batasan jumlah antarmuka yang dapat diwarisi oleh kelas. Selain metode yang tidak diimplementasikan, antarmuka juga dapat menyertakan konstanta publik.
Dalam pewarisan antarmuka, objek yang mewarisi stub dan konstanta metode dianggap sebagai jenis objek antarmuka. Jadi, jika kelas X diwarisi dari antarmuka Y, setiap turunan dari kelas X juga akan menjadi turunan dari kelas Y. Ini menjadi lebih rumit ketika pewarisan antarmuka kelas melibatkan lebih dari satu antarmuka terpisah. Untuk setiap antarmuka tambahan yang diwarisi, kelas yang dihasilkan dapat digunakan secara sah sebagai turunan dari masing-masing. Jika sebuah kelas diwarisi dari sepuluh antarmuka yang berbeda, objek dari kelas tersebut dapat digunakan sebagai turunan dari sebelas objek yang berbeda, termasuk dirinya sendiri.
Warisan kompleks seperti itu seringkali tidak diperlukan. Warisan antarmuka digunakan untuk memastikan bahwa kelas memiliki seperangkat perilaku khusus yang diperlukan, dan perilaku ini memungkinkannya melakukan berbagai fungsi yang tidak dapat dilakukan jika tidak. Contoh umum dari ini adalah antarmuka ActionListener di Java, yang membutuhkan kelas untuk mengimplementasikan hanya satu metode tertentu. Keberhasilan implementasi metode ini memungkinkan pengguna untuk mengontrol tombol, item menu, atau objek jendela lainnya di kelas jika diinginkan. Warisan antarmuka adalah cara yang relatif sederhana untuk menambahkan fungsionalitas kompleks ke kelas tanpa mengkhawatirkan masalah pewarisan yang paling rumit.
Salah satu keuntungan terbesar menggunakan pewarisan antarmuka adalah memungkinkan objek tertentu digunakan dalam pengertian umum. Karena kelas yang mengimplementasikan antarmuka adalah turunan dari antarmuka itu, kelas itu dapat digunakan di mana pun instance antarmuka itu diperlukan. Misalnya, jika kelas A mengimplementasikan kelas C, dan kelas B juga mengimplementasikan kelas C, jika suatu metode mengambil sebagai parameter turunan dari kelas C, baik turunan dari kelas A atau turunan dari kelas B akan menjadi parameter yang dapat diterima untuk digunakan. . Antarmuka tidak dapat dipakai sendiri karena tidak lengkap, jadi tidak akan pernah ada objek yang murni turunan dari kelas C sebagai parameter.