[JAVA] Polymorphisme

Lisez p491 à p592 de l'introduction claire de Java et écrivez sur le polymorphisme qui vous satisfait particulièrement.

Qu'est-ce que le polymorphisme?

En gros, le polymorphisme est un concept qui vous permet de traiter plusieurs choses similaires qui sont strictement différentes comme la même chose. Dans le livre de référence, il était assimilé à un projet de loi. Si vous donnez une facture de 10 000 yens à une personne primitive, vous penserez que c'est un papier avec une image dessus. Je ne pense pas qu'il puisse être utilisé pour quoi que ce soit, même si j'aime le regarder. Je suis heureux de donner une facture de 10 000 yens à un humain. Parce que je sais que le papier est une facture et peut être échangé contre quelque chose. C'est comme ça. Bref, "la même chose peut être comprise différemment" et "la méthode d'utilisation change en fonction de ce que vous en pensez". Exprimé en termes d'héritage, est-ce comme du papier ← papier avec images ← factures? Le papier a une méthode pour essuyer l'eau. Il a une méthode pour ajouter et apprécier le papier sur lequel l'image est dessinée (les personnes qui ne peuvent pas aimer voir l'image ne seront pas considérées cette fois. Tout le monde appréciera la voir). Et une méthode que la facture peut être échangée contre les deux premières méthodes + choses est ajoutée. L'important est que les factures comportent également des méthodes «essuyer l'eau» et «regarder avec plaisir». L'utilisation augmente en fonction de ce que vous pensez de la facture. Il semble que nous devions spécifier ce que l'ordinateur devrait considérer comme du papier.

Avantages du polymorphisme

J'expliquerai dans des situations spécifiques où le concept de polymorphisme est utile, en utilisant le code du livre de référence.

public class Main { 
  public static void main(String[] args){
	Character[] c = new Character[5];

	c[0] = new Hero();
	c[1] = new Hero();
	c[2] = new Thief();
	c[3] = new Wizard();
	c[4] = new Wizard();

	//Restez dans une auberge
	for (Character ch :c ) {
		//Récupérer 50 HP
		ch.addHp(50);	
	}
  }
}

Ce livre de référence a le code de réglage du RPG. Un groupe de 5 personnes aux occupations différentes séjourne à l'auberge et récupère 50 HP pour chacune d'entre elles. On suppose que toutes les classes d'occupation (héros, voleur, sorcier) héritent du type de personnage. Ici, toutes les instances de la classe de chaque occupation sont stockées dans le tableau appelé Type de caractère c de la super classe. Ensuite, l'élément de c est tourné par l'instruction for, et 50 est ajouté à HP par la méthode appelée addHp que possède la classe d'occupation. La possibilité de stocker des instances de type de sous-classe dans cette variable de type de superclasse est une caractéristique et un mérite du polymorphisme. Classes strictement différentes, mais peuvent être attribuées. Si cela n'est pas possible, vous devrez écrire une ligne à la fois pour restaurer 50 HP pour chaque instance de chaque classe de profession. C'est difficile quand il y a 1000 instances. De cette façon, il est polymorphe que les programmeurs peuvent s'amuser en traitant des choses similaires comme à peu près la même chose.

Résumé

La propriété que quelque chose de différent du polymorphisme peut être considéré à peu près comme la même chose. Inversement, la même chose peut être traitée comme différente avec une légère différence. Grâce à cette propriété, les programmeurs peuvent profiter de divers avantages.

Recommended Posts

Polymorphisme
Polymorphisme
Quiz sur le polymorphisme
[Java] Polymorphisme
À propos du polymorphisme
java (polymorphisme)
Encapsulation, polymorphisme
À propos du polymorphisme Java Super ()
java (mérites du polymorphisme)