? Développeurs Java conçus dès le départ pour agir comme un langage de programmation complet orienté objet . Pour cette raison , les concepts font partie intégrante de la programmation orientée objet devient très important dans les fonctions de base Java. En particulier , les concepts d' héritage de classes (et les problèmes qui se posent forme héritage de classe ) sont des préoccupations fondamentales pour le programmeur Java. L'un de ces problèmes , l'héritage multiple , peut être contournée avec une compréhension de la façon dont l'héritage fonctionne , et comment utiliser les interfaces Java. POO et héritage
Programmation Orientée Objet utilise le concept d'héritage pour étendre la fonctionnalité des objets. Considérez quand un programmeur crée un objet , elle peut trouver plus tard qu'elle doit créer un objet très similaire avec seulement de légères différences ( peut-être d'étendre la fonctionnalité de l'objet précédent dans un nouveau contexte ) . C'est là l'héritage entrent en jeu. Un objet qui un programmeur "dérive " d'un autre objet " de base " hérite des méthodes et des variables de cette catégorie, et peut alors ajouter plus de fonctionnalités à elle ( comme dans l'exemple suivant Java ) :
Classées sphère publique {
public int rayon ;
}
boule public class Sphere {
couleur public string ; //boule ajoute la variable « couleur », mais utilise aussi le «rayon» Variable:
}
héritage multiple
à un certain point , un programmeur pourrait devenir tentés pour dériver une classe unique à partir de plusieurs classes. Ceci est connu comme " l'héritage multiple » et tout semble utile , peut causer des problèmes , tels que le fameux « problème de diamant. " Le problème du diamant se produit lorsque deux classes héritent de la même classe ( comme la classe B et C découlant de classe A) , tandis que l'autre classe (D) hérite à la fois B et C. Lorsqu'un objet D est créé , le système traite comme un type de la classe de base ( classe " boule" est une " sphère ", par exemple ) . Dans le problème de diamant , le système ne peut pas déterminer de façon décisive quelle classe D est ( est-il taper ABD ou le type ACD ? ) Qui provoque des problèmes .
Java et l'héritage multiple
raison des problèmes avec l'héritage multiple , Java ne permet pas l'héritage multiple. Cependant, en réalité issus des classes de plusieurs classes de base peuvent être accomplies de façon sécuritaire grâce à l'utilisation de « interfaces ». Une interface est similaire à une classe , sauf qu'il ne définit uniquement la structure de la classe , mais pas le code réel . Une classe de base qui implémente une interface n'a pas nécessairement " hériter " de la fonctionnalité de l'interface : il ne promet d' utiliser sa structure. Parce qu'une classe implémente une interface n'hérite pas d'une autre classe ( et ce n'est pas un type de la classe de base ) , alors que le programmeur peut implémenter plusieurs interfaces en utilisant la même classe
. Exemple: Héritage et interfaces
l'exemple suivant montre la différence entre l'héritage objet et une interface. Surtout, une classe qui hérite d'un autre accès gains de la classe de base , car il devient essentiellement un type de cette classe (comme dans le " Ball" et les classes " Sphère " ) . Une classe qui implémente une interface uniquement promet de mettre en place la structure de l'interface : ce n'est pas un type de cette interface :
Interface de base {
int doublea (); //AVIS: code actuel est défini dans l'interface
}
public class B implémente base {
public int a;
public int doublea () //classe B doit définir la méthode " doublea ()" pour mettre en œuvre
"Basic" {return a * 2 ;} }