Travailler avec des classes connexes en java

Beaucoup de classes que vous verrez dans Java ont créé des objets qui se dressent sur leur propre. Cependant, la véritable puissance de la programmation orientée objet réside dans sa capacité à créer des classes qui décrivent des objets qui sont étroitement liés les uns aux autres.

Sommaire

Par exemple, des balles de baseball sont semblables à softballs- deux sont des types spécifiques de boules. Chacun a un diamètre et un poids à la fois peut être jeté, pris, ou frappé. Cependant, ils présentent des caractéristiques différentes qui les amènent à se comportent différemment.

Si vous créez un programme qui simule le baseball et de softball de façon travail, vous avez besoin d'un moyen de représenter ces deux types de balles. Une option consiste à créer des classes séparées pour représenter chaque type de balle. Ces classes sont similaires, de sorte que vous pouvez simplement copier la plupart du code d'une classe à l'autre.




Une autre option est d'utiliser une seule classe pour représenter les deux types de balles. Ensuite, vous passez un paramètre pour le constructeur d'indiquer si une instance de la classe se comporte comme une balle de baseball ou comme un softball.

Java a deux caractéristiques de la programmation orientée objet qui sont conçus spécifiquement pour gérer les classes qui sont liées comme ceci: l'héritage et les interfaces.

Héritage

Héritage est une technique de programmation orienté objet qui vous permet d'utiliser une classe de base pour un autre. La classe existante est appelé classe de base, superclasse, ou parent de classe la nouvelle classe qui est dérivée d'elle est appelée la classe dérivée, sous-classe, ou classe enfant.

Lorsque vous créez une sous-classe, la sous-classe est automatiquement donné toutes les méthodes et les champs définis par sa superclasse. Vous pouvez utiliser ces méthodes et champs tels quels, ou vous pouvez les modifier à modifier leur comportement. En outre, vous pouvez ajouter des méthodes et des champs qui définissent les données et le comportement qui est unique à la sous-classe.

Vous pouvez utiliser l'héritage pour résoudre le problème de baseball / softball en créant une classe nommée Balle qui fournit les fonctionnalités de base de tous les types de boules, puis l'utiliser comme la classe de base des classes séparées nommées BaseBall et Softball. Ensuite, ces classes peuvent redéfinir les méthodes qui doivent se comporter différemment pour chaque type de balle.

Une façon de penser de l'héritage est comme un moyen de mettre en œuvre est-a-type de relations. Par exemple, une balle de softball est un type de balle, comme une balle de baseball. Ainsi l'héritage est un moyen approprié pour mettre en œuvre ces classes liées.

Interfaces

Un interface est un ensemble nommé de méthode et sur le terrain déclarations publiques. Notez que l'interface elle-même ne fournit aucun code pour implémenter ces méthodes. Au lieu de cela, il fournit simplement les déclarations. Ensuite, une classe qui outils l'interface fournit un code pour chacune des méthodes de l'interface définit.

Vous pourriez utiliser une interface pour résoudre le problème de baseball / softball en créant une interface nommée Balle qui spécifie toutes les méthodes et les champs qui une boule devrait avoir. Ensuite, vous pouvez créer la Softball et BaseBall les classes de telle sorte qu'ils mettent en œuvre la Balle interface.

Interfaces sont étroitement liées à l'héritage, mais ont deux différences majeures:

  • L'interface elle-même ne prévoit pas de code qui implémente toutes ses méthodes. Une interface est tout simplement un ensemble de méthodes et de terrain signatures. En revanche, une classe de base a la mise en œuvre de tout ou partie de ses méthodes.
  • Une classe peut avoir une seule classe de base. Cependant, une classe peut implémenter autant d'interfaces que nécessaire.

» » » » Travailler avec des classes connexes en java