первую очередь, я хотел бы извиниться о моей грамматике, так как английский не мой первый язык, как правило, я делаю грамматические ошибки ...OOP & Java: как обобщить из абстрактного класса?
Существует некоторая проблема, которая всегда мешает мне сделать общий код:
Как поместить абстрактный класс с абстрактными методами внутри другого абстрактного класса? Я знаю, что абстрактные классы не могут быть созданы, но ... нет ли способа сделать это с помощью универсальности?
один пример: У меня есть абстрактный класс Feline, этот класс имеет несколько абстрактных методов. Существует еще один класс: Cage класс, который может содержать только определенное количество Feline объектов (скажем, клетка кошек, клетка тигров, клетка львов и т. Д.) ... но как я это делаю? Я не могу создать экземпляр Felines внутри Кейдж класс ... И как я могу сделать клетку кошек?
Другой пример, я заметил, что могу сортировать коллекцию материалов, используя только два критерия сортировки: этот материал идет после этого другого материала? и: делает ли это материал перед этим другим?
Итак, каждый сортируемый материал должен иметь два булевых метода: «goAfter (stuff): boolean» и «goesBefore (stuff): boolean», то я помещаю этот материал в другой класс через отношение состава/агрегирования, назовите его классом LotsOfSortableStuff, и я бы поместил метод sort(): void, этот метод будет использовать методы goAfter и goBefore из этого сортируемого материала ...
Есть много вещей, которые можно сортировать: ученики (по степени), Childs (по высоте), имена (по алфабетическому порядку) и т. д. Проблема заключается в том, что всякий раз, когда я хочу создать коллекцию сортируемых материалов, мне приходится вводить текст с использованием одного и того же двух методов, и сортировочный алгоритм!
Как применить типичность в таких проблемах?
спасибо! это помогло много ... но, как класс ** Список ** не умеет хранить ** Felines **? – Bengalaa
@ RuthGarcía Определенный интерфейс 'List' - это Java, уже настроенный для обработки * generics *. Таким образом, программисты Java могут создавать 'List' любого типа, даже те, которые они создают сами. –
Как и примечание, ваша декларация для 'Feline' должна быть' public abstract class Feline реализует Comparable ' –
cmbaxter