Content deleted Content added
No edit summary |
m Disambiguating links to Object-orientation (link changed to Object-oriented programming) using DisamAssist. |
||
(36 intermediate revisions by 18 users not shown) | |||
Line 1:
{{Short description|Shared boundary between elements of a computing system}}
In computing, an '''interface''' is a shared boundary across which two or more separate components of a [[computer system]] exchange information. The exchange can be between [[software]], [[computer hardware]], [[peripheral
| year = 2000
| title = IEEE 100 - The Authoritative Dictionary Of IEEE Standards Terms
Line 11 ⟶ 10:
== Hardware interfaces ==
[[File:RJ-45 Ethernet socket on Lenovo T410 Laptop.jpg|thumb|upright=1.4|Hardware interfaces of a [[laptop]] computer: [[Ethernet]] network socket (center), to the left a part of the [[Video Graphics Array|VGA]] port, to the right (upper) a [[display port]] socket, to the right (lower) a [[Universal Serial Bus|USB]]-
{{Main article|Hardware interface}}
Hardware interfaces exist in many components, such as the various [[Bus (computing)|buses]], [[Computer data storage|storage devices]], other [[I/O]] devices, etc. A hardware interface is described by the mechanical, electrical, and logical signals at the interface and the protocol for sequencing them (sometimes called signaling).<ref name="87Blaauw">
Line 45 ⟶ 44:
{{See also|Application binary interface|Application programming interface}}
A software interface may refer to a wide range of different types of
=== In practice ===
Line 69 ⟶ 68:
=== In object-oriented languages ===
{{Main article|Interface (object-oriented programming)|Concept (generic programming)}}
In some [[Object-oriented programming|object-oriented]] languages, especially those without full [[multiple inheritance]], the term ''interface'' is used to define an [[Abstract data type|abstract type]] that acts as an [[abstraction]] of a [[Class (computer science)|class]]. It contains no data, but defines behaviours as [[Method (computer science)|method]] signatures. A [[class (computer science)|class]] having code and data for all the methods corresponding to that interface and declaring so is said to ''implement'' that interface.<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|title=What Is an Interface|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120412093619/http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|archive-date=2012-04-12}}</ref> Furthermore, even in single-inheritance-languages, one can implement multiple interfaces, and hence can ''be'' of different types at the same time.<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|title=Interfaces|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120526080117/http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|archive-date=2012-05-26}}</ref>
An interface is thus a [[data type|type]] definition; anywhere an object can be exchanged (for example, in a [[function (computer science)|function]] or [[method (computer science)|method]] call) the ''type'' of the object to be exchanged can be defined in terms of one of its implemented ''interface''s or base-classes rather than specifying the specific [[Class (computer science)|class]]. This approach means that any class that implements that interface can be used.{{citation needed|date=June 2018}} For example, a [[Skeleton (computer programming)|dummy implementation]] may be used to allow development to progress before the final implementation is available. In another case, a [[Test-driven development#Fakes, mocks and integration tests|fake or mock]] implementation may be substituted during testing. Such [[Method stub|stub]] implementations are replaced by real code later in the development process.
Line 113 ⟶ 112:
* [[Business Interoperability Interface]]
* [[Computer bus]]
* [[Coupling (computer programming)]]
* [[Hard disk drive interface]]
* [[Implementation (computer science)]]
|