Поясніть до ладу для інтерфейси в ООП (Delphi)

Всі статті, які я знайшов виглядають приблизно так: "Зараз ми пояснимо вам простими словами як рахувати до десяти, і так почнемо: Один, Два, Три, Четриєвдлирже, фхзгЗрижпр хнге-034 53 уцзхкщхйц е. Ну от , тепер ви знаєте як рахувати до десяти."

Все що я зрозумів, інтерфейс це така собі названа сутність (як клас), яка має "порожні" методи (тобто описи назв, але не їх код). А ось що далі з цим знанням робити не зрозуміло. Може, якийсь простенький приклад, практичний, є? Наприклад - нам потрібно зробити те, для цього ми використовуємо інтерфейс для того і робимо ми це так.

Все що я зрозумів, інтерфейс це така собі названа сутність (як клас), яка має "порожні" методи (тобто описи назв, але не їх код). А ось що далі з цим знанням робити не зрозуміло. Може, якийсь простенький приклад, практичний, є?

Якщо стисло, так. Саме так і є. До купи їх можна комбінувати, успадковувати включати один одного і т.д., що не можна робити з класами. Інтерфейси - дуже зручний спосіб надати доступ до методів класу без відкриття коду, застосування маса. Тут тобі просто винести класи в dll, і замислюватися про звільнення об'єктів, і реалізувати систему плагінів, і поділиться до кимось кодом з dll, не показуючи цю dll. Читайте про ActiveX та COM.

Як суть у самій DLL у мене вже повноцінний клас з тим самим ім'ям та іменами методів, але вже з кодом у них.

Тобто. я можу описати інтерфейс у додатку, а у зовнішній DLL розширити сам інтерфейс додавши йому методи та додаток їх побачить?

І може інтерфейс містити описаний (код) метод? Тобто. якщо бібліотека з класом не завантажена, він використовує цей метод,якщо завантажена, то метод класу з DLL?

Ну, це так, приквел. Взагалі, спробуйте розібратися з цією статтею (metanit.com/sharp/tutorial/3.9.php). Вона про C#, але ідея інтерфейсу така ж, та й код не повинен здатися вам зовсім незрозумілим. Але розписано цілком доступно

А як тільки розберетеся, що таке інтерфейс і навіщо він, ось вам питання, яке задають на співбесідах: у яких випадках використовувати інтерфейс, а в яких абстрактний клас?