Я знаю о C++ чистые виртуальные классы, но Java пошел один шаг вперед и создал первоклассное (никакая предназначенная игра слов) понятие для нескольких - интерфейс (не реализация) наследование, interface
. Это - теперь главный продукт главных статически типизированных языков. Java изобретал интерфейсное понятие? Или это появлялось на более старых языках также как первоклассное понятие?
Вот выдержка из статьи «Среда языка Java».
Интерфейс в языке Java - это просто спецификация методов, которые объект, как объявляет, реализует. Интерфейс не включает переменные экземпляра или код реализации - только объявления констант и методов. Концепция интерфейса в языке Java была заимствована из концепции протокола Objective-C .
http://java.sun.com/docs/white/langenv/Object.doc2.html#6185
Насколько мне известно, Objective-C был первым языком, в котором были реализованы интерфейсы. По крайней мере, они были до того, как была изобретена Java.
IDL, используемый CORBA, я полагаю, восходит к началу 80-х.
Я почти уверен, что IUnknown и IDispatch существовали до Java ... Но это COM, который на самом деле не является языком.
Чистые виртуальные классы без полей вызывались в интерфейсах C ++ еще до Java. Идея, лежащая в основе интерфейсов Java, заключалась в том, чтобы удалить неприятное множественное наследование, как это было в C ++, но оставить аналогичные возможности.
Я совершенно уверен, что разработчики Java не изобретали концепцию интерфейсов, а популяризировали их.