11
votes

Java invente-t-il des interfaces?

Je connais des classes virtuelles PURE C ++, mais Java a également été une étape et a créé un concept de première classe (sans jeu de mots) pour héritage multi-interface (non implémentée), l'interface . C'est maintenant une base de grandes langues statiquement typées. Java a-t-il inventé le concept d'interface? Ou est-il apparu dans les langues plus anciennes aussi comme un concept de première classe?


6 commentaires

Les designers de Java ont-ils vraiment inventé quelque chose? AFAIK, ils ont simplement rassemblé un tas d'idées qui slosseront tout à fait avant la création de la langue.


@Neil: True, mais c'est ainsi que la plupart des langues non académiques ont été créées.


@ Joachim Oui, je n'utilisais pas de critique.


@ Trevor Tippins Pourquoi avez-vous supprimé votre réponse? C'est totalement légitime.


@Neil Butterworth: Exceptions statiquement vérifiées.


@Tom une bonne idée? Quoi qu'il en soit aurait besoin de preuves que Java a inventé que Java n'était-il pas ada faire quelque chose de similaire il y a longtemps?


7 Réponses :


2
votes

Les classes virtuelles pures sans champs ont été appelées dans des interfaces C ++ avant même de Java. Idée derrière les interfaces de Java consistait à supprimer Nasty Héritage multiple, car elle était en C ++, mais laissez des capacités similaires.


0 commentaires

1
votes

Je suis tout à fait sûr que les développeurs Java n'avaient pas inventé le concept d'interfaces mais ils les vulgurent.


0 commentaires

6
votes

Autant que je sache que l'objectif - c a été la première langue à contenir des interfaces. Au moins cela les avait avant que Java ait été inventé.


2 commentaires

Je ne connais pas l'objectif-C, mais par son entrée de Wikipedia, il semble que son interface est plus lié à une déclaration avant d'une interface de classe spécifique (comme un fichier d'en-tête C ++), et non le concept d'interface Java. Corrigez-moi si j'ai tort, s'il-vous plait!


Bien sûr, mais le concept «interface» s'appelle «protocole» dans l'objectif-c.



1
votes

IDL, utilisé par Corba, je crois retourner au début des années 80.


2 commentaires

Oui, mais IDL ne fait pas partie d'une langue, mais d'une spécification d'interopération linguistique. Mais vous avez raison, cela pourrait avoir influencé le concept d'interface Java à une certaine capacité.


@ Jordão IDL n'est pas une langue de programmation. C'est cependant une langue (c'est le volet L).



18
votes

Voici abstrait de l'article L'environnement linguistique Java.

Une interface dans la langue Java est simplement une spécification de méthodes qu'un objet déclare les outils informatiques. Une interface n'inclut pas les variables d'instance ni le code de mise en œuvre - uniquement des déclarations de constantes et de méthodes. Le concept d'une interface dans la langue Java a été emprunté à partir du concept objectif d'un protocole .

http://java.sun.com/docs/ Blanc / Langenv / Object.doc2.html # 6185


0 commentaires

6
votes

Je suis à peu près sûr que Iunknown et Idispatch existent avant Java ... mais c'est COM, ce qui n'est pas vraiment une langue.


0 commentaires

0
votes

J'aime les interfaces mais je suis juste au début d'apprendre à les utiliser. Le système d'interface le plus flexible et le plus puissant qui existe dans un langage de programmation est en cours, mais comme les gens l'ont souligné, Java les a popularisé, mais ils existaient il y a 20 ans, j'aimerais pouvoir me souvenir de la langue que j'ai trouvée l'autre jour, commence par 'g 'Je pense que peut-être quelque chose à propos d'un minéral ou d'une fleur dans le nom.

Le principe central des interfaces consiste à créer des descriptions de choses sur la manière dont ils passent des valeurs entre. Ils créent un moyen de transmettre une partie de données avec un ensemble d'utilisations sur une autre forme avec un ensemble d'utilisations très proches. Les interfaces utilisent généralement un schéma de dénomination pour indiquer que la définition de l'interface pivote autour du commun abstrait entre plusieurs choses. Lors de la programmation, tout se résume à des octets, vous pouvez donc créer des interfaces autour des octets de partage, il y a toujours une caractéristique commune.

Dans un sens pratique, une interface est un ensemble de méthodes entourant un type de données que vous n'avez pas spécifié, sauf vaguement. Go vous apprendra bien aux interfaces. Les interfaces apparaissent le plus en évidence dans la langue la plus orientée objet, comme l'OP, Java, mais aussi loin que je sache, Go a le système d'interface le plus puissant. Go est statiquement dactylographié, mais les types d'interface ne font aucune contrainte sur les données, en déplacement. Seules les limitations que vous définissez par les types que l'interface peut passer.

Je commence juste à apprendre à apprendre à programmer avec les interfaces, mais beaucoup de la sagesse gagnée par l'expérience des programmeurs Go est utile avec toute personne intéressée par les interfaces. Les interfaces doivent être compactes et fonctionnelles. Très souvent, vous n'avez pas besoin de définir une interface car les données sont trop différentes. Peut-être pour le stockage et la transmission, toutes les données === toutes les données. Voici quelles interfaces sont pour. Deux systèmes différents, quelles structures de données partagent-ils. C'est exactement ce qu'est une interface.


0 commentaires