Как мы можем реализовать два интерфейса с одинаковыми именами методов? - PullRequest
2 голосов
/ 26 октября 2010

У меня есть вопрос, как мы можем реализовать интерфейсы с такими же именами методов, как этот

 interface ISample2
{
  string CurrentTime();
     string CurrentTime(string name);
}
 interface ISample1
{
     string CurrentTime();
}

Мне это понравилось. Это верно?значение этой строки:

ISample1 obj1 = new TwoInterfacesHavingSameMethodName();

Создаем ли мы объект для класса или интерфейса. Каково основное использование написания методов в интерфейсе.

Ответы [ 2 ]

5 голосов
/ 26 октября 2010

Когда вы явно реализуете интерфейс, явная реализация будет вызываться, только если вы вызываете его из ссылки на этот интерфейс.

так что если вы напишите:

  TwoInterfacesHavingSameMethodName obj1 = new TwoInterfacesHavingSameMethodName();
  obj1.CurrentTime();

вы получите ошибку.

но

ISample1 obj1 = new TwoInterfacesHavingSameMethodName();
ISample2 obj2 = new TwoInterfacesHavingSameMethodName();
obj1.CurrentTime();
obj2.CurrentTime();

будет работать.

если вы хотите вызывать эту функцию также на TwoInterfacesHavingSameMethodName, вы должны также неявно реализовать интерфейс. Например:

public string CurrentTime()
{
   return "Implicit";
}
0 голосов
/ 26 октября 2010

Да, то, что вы сделали, правильно. Чтобы ответить на ваш второй вопрос, вы всегда создаете объект класса и типа интерфейс. Использование методов написания в интерфейсе состоит в том, чтобы заставить все классы реализовать этот метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...