Смысл интерфейса (не GUI) и зачем он вообще нужен?
Интерфейс - иной уровень абстракции. Это более продвинутое программирование на уровне что надо сделать, а не как надо сделать.
Как использовать библиотеку? Как связать две программы, два разных куска когда? Как заложить гибкость в проект? Как предусмотреть модернизацию программы? Надо использовать интерфейс.
Поставил + многим, и добавлю.
Прочитайте про SOLID, букву D.
Вы ничего не должны делать просто потому что так делают другие. Но вам желательно это понять, если хотите писать не домашние пет проекты а чуть более сложный софт который годами будут поддерживать множество людей.
Инверсия и полиморфизм это очень важная тема в разработке ПО и ООП. На этом завязано много паттернов, принципов.
GOF, SOLID, GRASP.
Вы даже тесты не сможете написать без интерфейсов.
Все это придумано не для того что бы вам голову морочить, это результат работы многих программистов которые десятилетия шли к ним самстоятельно.