Penser dans le polymorphisme dans Java3
Les gens sont souvent confus par d'autres caractéristiques non orientées vers l'objectif de Java, comme la surcharge de méthode, qui sont parfois présentées comme orientées objet. Ne soyez pas dupe: si ce n'est pas une liaison tardive, ce n'est pas le polymorphisme
Traduction par texte
Les gens sont toujours confus par une autre caractéristique non orientée vers l'objectif de Java, comme la surcharge de méthode. Parfois, il existe comme orienté objet. S'il vous plaît, ne soyez pas stupide. S'il n'y a pas de liaison tardive (c'est-à-dire une liaison dynamique pendant l'exécution), elle n'est pas polymorphe.
Par conséquent, ce que ce passage veut exprimer, c'est que les polymorphismes doivent avoir une liaison dynamique, sinon ce n'est pas le polymorphisme, et la surcharge de méthode n'est pas le polymorphisme (car la surcharge de méthode est déterminée pendant la période de compilation, et il n'y a pas de liaison dynamique dans la dernière période, c'est-à-dire la période d'exécution)
Lorsque ces trois conditions sont remplies 1. Il y a l'héritage 2.
<Span Style = "Font-Size: 14px;"> Exemple: Adresse de classe publique {nom de chaîne privée; Adresse publique (nom de la chaîne) {this.name = name;} public String getName () {return name;} public void setName (String Name) {this.name = name;}} Définissez la classe de base): Classe de base de la base de la base de la base} Classe publique La voiture étend le véhicule {@Overridepublic void go (adresse d'adresse) {System.out.println ("car vers" + adresse.getName ());}} Plan implémente la classe de base: la classe publique Plane étend le véhicule {@OverrideVoid go (adresse d'adresse) {System.out.out.println ("Planifier To" + Address.getName ());}} Drive (véhicule V) {/// Polymorphisme, la classe de parent pointe vers l'objet de sous-classe, et la transmission réelle est une sous-classe du véhicule de classe abstraite, ou classe d'implémentation, et le compilateur trouvera la méthode d'implémentation basée sur la classe de mise en œuvre spécifique. v.go (nouvelle adresse ("hangzhou (abstrait)")); /// Cette méthode est réécrite dans l'implémentation spécifique} test: public static void main (String [] args) {driver d = new Driver (); d.drive (new plan ()); // C'est en fait un objet plan, puis le compilateur trouvera la mise en œuvre de GO dans plan, d.drive (new car ()); // C'est en fait un objet de voiture, puis le compilateur trouvera la mise en œuvre de GO dans le plan} Résultat de sortie: plan pour hangzhou (abstrait) voiture à Hangzhou (abstrait) </span>Polymorphisme: fait référence aux différents états de la même chose, comme: l'eau. L'eau peut avoir trois états:
Gaz, liquides et solides. Ensuite, le polymorphisme en Java peut également être compris comme ce sens:
La technique pour définir l'objet parent est égal à un ou plusieurs de ses objets enfants,
Par exemple parent = enfant;
Le polymorphisme permet la référence d'objets de différentes classes en utilisant la même classe (classe parent),
Et effectuer la même opération de différentes manières en fonction de l'objet référencé.
L'implémentation polymorphe comprend deux façons: la surcharge et l'écrasement
Par exemple: animal a = new Tiger (); C'est un vieux sujet, haha ...
La référence de classe parent pointe vers l'objet de classe enfant. La classe animale contient une méthode EAT (), et la classe Tiger hérite de
Classe d'animaux, si la sous-classe réécrit la méthode EAT () de la classe parent, alors lorsqu'elle est appelée, vous pouvez suivre la classe enfant.
L'appel formel de, est essentiellement la méthode de la classe parent, mais une fois la sous-classe réécrite, elle devient une autre façon, qui est le polymorphisme.
Ce qui précède est la brève discussion sur les aspects de la mise en œuvre du polymorphisme Java principalement. J'espère que ce sera utile à tout le monde et soutenir Wulin.com plus ~