[JAVA] Histoire abattue (mémorial)

Qu'est-ce qui est abattu

Stockage d'un objet de superclasse dans un objet de sous-classe.

Échec abattu

Je devrais vérifier si l'instance peut être attribuée à l'aide de l'instance de, mais je pensais que ce serait bien si je ne la vérifiais pas, j'ai donc décidé d'écrire ma propre interprétation sous forme de mémorandum.

Quand j'en fais du code ...

Modèle NG (downcast)
public class Human {
  public void speak (){
    System.out.println("a-I-U-E-O");
  }
}
public class Men extends Human {
  public void speak (){
    System.out.println("Kakikukeko");
  }
}
public class Main {
  public static void main void (String [] args){
    Human h = new Human();
    Men M = (Men) h;
  }
}

Dans ce cas, l'Humain ne peut pas abattre car il ne connaît pas le contenu des Hommes.

Cependant, dans les cas suivants (modifiez la classe Main)

public class Main {
  public static void main void (String [] args){
    Human h = new Men();
    Man m = (Man) h;
  }
}

Les hommes savent ce qu'est l'humain et peuvent abattre.

Recommended Posts

Histoire abattue (mémorial)
Upcast / Downcast