java (mérites du polymorphisme)

Combinaison de polymorphisme et de séquence

Code qui ne combine pas de tableaux

public class Main {
  public static void main(String[] args) {
    Hero h1 = new Hero();
    Hero h2 = new Hero();
    Thief t1 = new Thief();
    Wizard w1 = new Wizard();
    Wizard w2 = new Wizard();
    //Commencez votre aventure!
    //Premier séjour à l'auberge
    h1.hp += 50;
    h2.hp += 50;
    t1.hp += 50;
    w1.hp += 50;
    w2.hp += 50;
  }
}

Code qui combine des tableaux

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) {      //Sortez un par un
      ch.hp += 50;                //Récupérer 50 HP
    }
  }
}

Combinaison avec argument

public class Hero extends Character{
  public void attack(Monster m) {               //Attaquez tous les monstres
    System.out.println(this.name + "Attaque!");
    System.out.println("10 points de dégâts aux ennemis");
    m.hp -= 10;
  }
}

Attaquez tout si vous héritez de la classe de monstres

Faites différentes actions avec les mêmes instructions

public class Main {
  public static void main(String[] args) {
    Monster[] monsters = new Monster[3];
    monsters[0] = new Slime();
    monsters[1] = new Goblin();
    monsters[2] = new DeathBat();
    for (Monster m : monsters) {
      m.run();                    //Répétez les mêmes instructions
    }
  }
}

Résultat d'exécution Slime s'est enfui Gobelin s'est enfui La chauve-souris de l'enfer s'est échappée

Appeler du côté, fuir, fuir, fuir Le slime latéral appelé s'est échappé du gobelin s'est échappé de l'enfer chauve-souris s'est échappé

Recommended Posts

java (mérites du polymorphisme)
[Java] Polymorphisme
java (polymorphisme)
[Java] Présentation de Java
Collection expirée de java
Caractéristiques prévues de Java
[Java] Importance de serialVersionUID
NIO.2 examen de Java
Avis sur Java Shilber
java --Unification des commentaires
À propos du polymorphisme Java Super ()
Histoire des annotations Java
Examen NIO de Java
[Java] Trois fonctionnalités de Java
Résumé du support Java 2018
À propos des instances Java
[Java] Utilisation de Mirage-Basic de SQL
[Java] Compréhension débutante de Servlet-②
[Java] Pratique de la gestion des exceptions [Exception]
[Java11] Résumé du flux -Avantages du flux-
Principes de base de l'utilisation des caractères (Java)
[Java] Création d'annotations originales
java learning day 4
[Java] Compréhension débutante de Servlet-①
Java fin du mois plusMonths
[Java] Résumé des expressions régulières
[Java] Résumé des opérateurs (opérateur)
[Java] Implémentation du réseau Faistel
[Java] Comparateur de la classe Collection
Résumé des bases du langage Java
Résumé de la classe Java Math
Énumération de toutes les combinaisons Java
java (héritage du principe is-a)
Avantages et inconvénients de Java
Avantages de la méthode statique Java
[Java] Résumé de la syntaxe de contrôle
Implémentation Java de tri-tree
Résumé du traitement des erreurs Java
[Java] Résumé des modèles de conception
[Java] Résumé des opérations mathématiques
[Java] J'ai réfléchi aux mérites et aux utilisations de "interface"
[Java] Comparaison de vitesse de combinaison de chaînes
[Java] Supprimer les éléments de la liste
[Pour les débutants] Résumé du constructeur java
Diverses méthodes de la classe Java String
Cause fondamentale du bogue du framework Java
[Édition Java] Histoire de la sérialisation
Résumé du package [Java Silver Study]
À propos de Lambda, Stream, LocalDate de Java8
Polymorphisme
Histoire du passage de Java Gold SE8
Trier la liste des objets Java
[Java] DateTimeFormatter sortie par FormatStyle
[Java] Entrez dans le stdin du processus
Utilisation de base de Java Facultatif Partie 1
[Java EE] @ Idée fausse commune de Dependent
Java
[Note] Gestion des points décimaux Java
[Java] Zones de données d'exécution de JVM