интерфейсы в Java - PullRequest
       30

интерфейсы в Java

0 голосов
/ 23 апреля 2009

В C # обычно используются такие методы:

public IPerson GetPerson()
{
  // do stuff
  return new Person(..);
}

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

Возможны ли подобные вещи в Java?

Ответы [ 5 ]

7 голосов
/ 23 апреля 2009

Да. У Java тоже есть интерфейсы.

4 голосов
/ 23 апреля 2009

Да, это почти то же самое ... Например:

// Interface
public interface IPerson {
    public String getName();
}

// Implementation of interface - NB "implements" keyword
public class Person implements IPerson {
    private final String myName;

    public Person(String name) {
        myName = name;
    }

    public String getName() {
        return myName;
    }
}

// Method returning interface
public IPerson getPerson(String name) {
    return new Person(name);
}
3 голосов
/ 23 апреля 2009

Я полагаю, что это почти то же самое, за исключением того, что Java использует ключевое слово "Implements" для интерфейсов.

2 голосов
/ 23 апреля 2009

Да, Java имеет такие же интерфейсы, как C #:

public interface IPerson {
   ...
}
1 голос
/ 23 апреля 2009

Java-эквивалент будет:

public Person getPerson()
{
  // do stuff
  return new SpecialPerson(..);
}

Где Person - это интерфейс Java (префикс имени интерфейса с буквой "I" является соглашением от программирования COM, поэтому не подходит для Java).

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