Cet article est un mémorandum. Bien qu'il s'agisse d'un contenu de niveau de référence, le code à publier dans cet article est ~~ ** L'erreur ** est le centre. Ceci est dans le but de poster la partie erronée pendant le codage réel et de l'afficher pour une auto-réflexion ~~. De plus, je n'aborderai pas la partie profonde ici, car je la passerai en revue plus tard tout en étudiant les questions d'examen Java Silver.
Langue: Java11, JDK13.0.2 Environnement d'exploitation: Windows 10
Toutes les classes que j'ai traitées jusqu'à présent ont été créées avec l'idée après la création de l'objet. Cependant, cette ** classe abstraite elle-même ne peut pas créer et instancier des objets **. La ** classe abstraite ** cette fois est une classe qui doit "décider du contenu en envisageant de créer une classe", et "lors de la création d'une classe qui hérite de cette classe abstraite, veuillez ajouter uniquement cette fonction." Pensez au contenu dans cet esprit.
À propos de la classe abstraite et de ses méthodes ** méthodes qui ne définissent pas le contenu du traitement **. La classe abstraite est caractérisée par une méthode (méthode abstraite) ** qui a un qualificatif ** ʻabstractet ne définit pas le contenu de traitement sur place. En préfixant
class avec ʻabstract
, la classe abstraite est une classe abstraite. Peut être déclaré comme.
abstractClass.java
abstract class Wild
{
protected int number;
public void getNumber(int n)
{
number = n;
System.out.println("Ce chat" + number + "Ceci est le deuxième chat.");
}
abstract void show();
}
En guise de mise en garde. Une méthode abstraite est requise dans la classe abstraite, mais ** une méthode concrète (une méthode sans ʻabstract`) peut être implémentée, et la méthode concrète peut être utilisée comme méthode héritée dans la sous-classe **.
Les sous-classes qui héritent de la classe abstraite doivent implémenter la méthode concrète en la remplaçant en fonction de la méthode abstraite par ** ʻabstract` **. Remplacer signifie
Il est nécessaire de remplir cette condition.
Une méthode avec le même nom est requise pour les sous-classes, donc si vous ne comprenez pas bien le contenu de la classe abstraite, vous continuerez à générer des erreurs.
HouseCat.java
class HouseCat extends Wild
{
public void see(int num)
{
number = num;
System.out.println("Ce chat" + number + "Ceci est le deuxième chat.");
}
//Attends une minute, montre()Où est-ce?
}
Vous pouvez utiliser l'opérateur ʻinstanceof` pour savoir si les variables de la section 2 appartiennent à la même classe **. Extrait de Java SE11 Silver Problem Collection (communément appelé Kuromoto).
a instanceof b true si a est une instance de la même classe que b ou une sous-classe de b
Il convient au mécanisme de contrôle car il peut être incorporé dans la branche conditionnelle de la fonction «main».
Il y a une ** interface ** prévue pour la prochaine fois qui est très similaire à la classe abstraite traitée cette fois, mais je voudrais bien confirmer ces différences.
J'écris et compile autant que possible des variables et des expressions moi-même, donc si je veux les citer complètement, je vais les décrire.
Easy Java 7e édition Java SE11 Silver Problem Collection (communément appelé Kuromoto)
Recommended Posts