Напишите простой интерфейс (без него) с именем Child и используйте его для создания ArrayList, который может хранить только экземпляры Boy и Girl. - PullRequest
2 голосов
/ 22 июня 2019

Я отвечаю на вопрос о пересмотре, и я вроде как застрял в том, как на него ответить.

Вопрос звучит так:

Предположим, у нас есть следующие схемы определения классов:

public abstract class Person { ... }

public class Man extends Person { ... }

public class Woman extends Person { ... } 

public class Boy extends Person { ... } 

public class Girl extends Peron { ... }

я. Создайте ArrayList, который может хранить любой экземпляр классов Man / Woman / Boy / Girl, используя приведенные выше определения классов, но не допускает экземпляры Animal или любых других классов.

II. Напишите простой интерфейс (без него) с именем Child и используйте его для создания ArrayList, который может хранить только экземпляры Boy и Girl (т. Е. И не Man или Woman).

Первый, я полагаю, ответ следующий:

ArrayList <Person> list = new ArrayList<Person>();

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

Ответы [ 2 ]

3 голосов
/ 22 июня 2019

Создайте интерфейс, сделайте так, чтобы только Мальчик и Девочка реализовали его, и вместо этого сделайте его списком Детей.Вам нужно обновить всего 3 строки.

2 голосов
/ 22 июня 2019

Я бы создал интерфейс Child.

interface Child {}

Заставьте Boy и Girl реализовать его.

public class Boy extends Person implements Child { ... }

public class Girl extends Person implements Child { ... }

А затем использовать интерфейс в качестве универсального типа для списка.

ArrayList<Child> list = new ArrayList<>();

Примечание

Всегда старайтесь программировать на интерфейсы . Вместо ArrayList для справки используйте List.

List<Child> list = new ArrayList<>();
...