Java, classe abstraite pour commencer par débutant

introduction

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.

environnement

Langue: Java11, JDK13.0.2 Environnement d'exploitation: Windows 10

Classes qui ne peuvent pas créer d'objets

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éfixantclass 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 méthodes abstraites définissent les exigences

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

  1. Même signature (nom de la méthode, dans ce cas la relation d'argument attend l'implémentation)
  2. Modificateurs d'accès identiques ou plus lâches
  3. Le type de retour est fondamentalement le même (à l'exclusion des valeurs de retour covariantes)

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?
}

en conclusion

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.

référence

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

Java, classe abstraite pour commencer par débutant
Java à partir du débutant, opérateur logique / opérateur conditionnel
Java à partir du débutant, remplacer
Java, instance à partir du débutant
Java à partir de débutant, héritage
La vie Java à partir de zéro
À propos de la classe abstraite Java
Méthodes et classes abstraites Java
Java, constructeur de surcharge à partir du débutant
Classes et instances Java pour les débutants
Java pour les débutants, les variables et les types
Java à partir du débutant, imbriqué / break / continue
Java, instruction if / instruction switch à partir du débutant
Introduction à Java à partir de 0 Partie 1
Cours et méthodes abstraits d'histoire d'apprentissage JAVA
Java, pour instruction / while à partir du débutant
IntelliJ à partir de 1
java (classe abstraite)
[java] Classe abstraite
Les débutants en programmation apprennent PHP à partir d'une perspective Java-variables-
Java à partir du débutant, déclaration de classe / génération d'objet
Pour les ingénieurs Java qui démarrent Kotlin à partir de maintenant
Modificateur abstrait Java [Note]
Appeler Java depuis JRuby
Changements de Java 8 à Java 11
Somme de Java_1 à 100
classe java, instance, objet
Évaluer la source Java à partir de Java
[Java] À propos des classes anonymes
Picture-in-picture à partir d'iOS14
Accédez à API.AI depuis Java
De Java à Ruby !!
Chargement des classes depuis Path
[Java] Plates-formes parmi lesquelles choisir pour le développement Java à partir de maintenant (2020)
java (classe et instance)
À propos de la classe abstraite de Java
[Pour les débutants] Explication des classes, des instances et des statiques en Java
Résumé d'héritage avancé, interface -java
Migration de Cobol vers JAVA
[Java] Compréhension débutante de Servlet-②
Exécution de débogage Java [pour les débutants Java]
[Java] Instruction de base pour les débutants
(Remarque) Classes / variables / méthodes Java
[Java] Classe générique et méthode générique
Création d'index Elastic Search à partir de Java
Nouvelles fonctionnalités de Java7 à Java8
[Java] Compréhension débutante de Servlet-①
Connectez-vous de Java à PostgreSQL
Résumé orienté objet par les débutants (Java)
Mémo d'apprentissage Java (classe abstraite)
Java pour les débutants, masquage des données
[Java] Classes, constructeurs, membres statiques
Les débutants en Java lisent Hello World
Utilisation de Docker depuis Java Gradle
De Java inefficace à Java efficace
JavaScript vu de Java
Application Java pour les débutants: stream
Exécuter des instructions non-Java à partir de Java