Чем полезен интерфейс или абстрактный класс? (или для чего?) - PullRequest
3 голосов
/ 17 мая 2010

Итак, мой вопрос: зачем использовать интерфейсы или абстрактные классы? Чем они полезны и для чего?

Где я могу использовать их разумно?

Ответы [ 2 ]

5 голосов
/ 17 мая 2010

Интерфейсы позволяют вам выразить, что делает тип, не беспокоясь о том, как это делается. Реализация может быть изменена по желанию без влияния на клиентов.

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

Использование и примеры зависят от языка. Если вы знаете Java, вы можете найти примеры интерфейсов и абстрактных классов в API. В коллекциях java.util есть и то, и другое.

3 голосов
/ 17 мая 2010

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

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

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

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