Что класс является интерфейсом?

Откройте файл package.json и проверьте узел devDependencies. У него есть машинописная версия, используемая в проекте, как показано ниже.

"typescript": "^2.4.0",

Вы также можете использовать командную строку, как предложил Sajeetharan в ответе ниже.

9
задан IAdapter 20 June 2009 в 19:14
поделиться

5 ответов

Я думаю, что хороший способ определить интерфейс выглядит следующим образом

Интерфейс - это контракт, определяющий набор методов, полей и свойств, которые будут доступны для любого реализующего объекта

Фактическая реализация от языка к языку может иметь забавные небольшие различия, но принцип остается в силе.

Я подумал о добавлении реализованных интерфейсов в список выше, но оставил его, потому что он казался слишком специфичным для языка. Я думаю, что это нормально, потому что конечный эффект почти такой же. Добавление большего количества интерфейсов - это просто добавление в контракт дополнительных методов, полей и свойств.

10
ответ дан 4 December 2019 в 09:14
поделиться

В общем, интерфейс - это просто то, «как класс выглядит для остального мира».

Например, этот класс в Java:

class MyClass {
  private string data;
  private string Foo() {...}
  public void Bar(string s){...}
}

может иметь просто функция Bar в его интерфейсе. Внутри у него есть несколько других членов, но они частные, поэтому они не видны внешнему миру.

Чаще интерфейсы также являются конкретными типами на языке, например, в следующем примере MyClass реализует интерфейс IMyClass:

interface IMyClass {
  public void Bar(string s);
}

class MyClass implements IMyClass {
  private string data;
  private string Foo() {...}
  public void Bar(string s){...}
}

Интерфейс теперь выражен в коде, так что каждый раз, когда ожидается переменная типа IMyClass, можно использовать объект типа MyClass, потому что он реализует правильный интерфейс.

10
ответ дан 4 December 2019 в 09:14
поделиться

Интерфейс класса - это его «публичное лицо», которое могут видеть другие классы. Он отделяет реализацию класса от способа взаимодействия с другими классами. Таким образом, можно заменять разные реализации, и другим классам не нужно ничего знать о том, что стоит за интерфейсом.

Интерфейс может включать как данные, так и функции-члены.

2
ответ дан 4 December 2019 в 09:14
поделиться

Это внешнее лицо мира. Обычно он предоставляет набор общедоступных методов (членов).

Технически, однако, это две разные вещи

Интерфейс будет публичным контрактом. например

interface ILogger
{
  void Log(String str);
}

Класс затем «реализует» этот интерфейс - таким образом, говоря, что он предоставляет эту функциональность

class ConsoleLogger : ILogger
{
  public ConsoleLogger() { ... }
  public void Log(String str)
  {
    Console.WriteLine("Console Logger " + str);
  }
  // private stuff
}

Пользователи этой службы / интерфейса не должны беспокоиться о том, как он реализован или кто его реализует? В зависимости от интерфейса фактическая реализация может быть переключена по желанию.

1
ответ дан 4 December 2019 в 09:14
поделиться

Интерфейс - это определение набора методов, которые может реализовать класс. В основном он используется для полиморфизма интерфейсов.

0
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: