Я могу сказать, что я отношусь к этому. Когда я впервые начал изучать OO и C #, у меня тоже не было Интерфейсов. Это нормально. Нам просто нужно натолкнуться на то, что поможет вам оценить удобство интерфейсов.
Позвольте мне попробовать два подхода. И простите меня за обобщения.
Попробуй 1
Скажем, вы носитель английского языка. Вы отправляетесь в другую страну, где английский не является родным языком. Тебе нужна помощь. Вам нужен кто-то, кто может вам помочь.
Вы спрашиваете: «Эй, ты родился в Соединенных Штатах?» Это наследство.
Или вы спрашиваете: «Эй, ты говоришь по-английски»? Это интерфейс.
Если вы заботитесь о том, что он делает, вы можете положиться на интерфейсы. Если вы заботитесь о том, что есть, вы полагаетесь на наследство.
Можно полагаться на наследство. Если вам нужен кто-то, кто говорит по-английски, любит чай и любит футбол, вам лучше попросить британца. :)
Попробуй 2
Хорошо, давайте попробуем другой пример.
Вы используете разные базы данных, и вам нужно реализовать абстрактные классы для работы с ними. Вы передадите свой класс какому-нибудь классу от поставщика БД.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
Вы говорите, множественное наследование? Попробуйте это в приведенном выше случае. Ты не можешь Компилятор не будет знать, какой метод Connect вы пытаетесь вызвать.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
Теперь есть кое-что, с чем мы можем работать - по крайней мере, в C # - где мы можем реализовать интерфейсы явно.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
Заключение
Примеры не самые лучшие, но я думаю, что это важно.
Вы только «получите» интерфейсы, когда почувствуете их необходимость. До них вы будете думать, что они не для вас.