Java, interface pour partir du 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 ** Mauvais ** sont les choses principales. C'est dans le but de publier la partie qui s'est réellement trompée lors du codage et de la publier pour une réflexion personnelle. 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

Interface

Il existe un mécanisme appelé ** interface ** qui est utilisé d'une manière similaire à la ** classe abstraite ** qui a été traitée la dernière fois. La classe abstraite était une sorte de classe et l'interface est créée dans le même but, mais la méthode de déclaration et d'implémentation est différente.

declareInterface.java


interface Felidae
{
  String type = cats;
  void meetsCats();
}

La déclaration habituelle de class a été supprimée et remplacée par ʻinterface. Comme une classe, elle peut avoir des champs et des méthodes (** elle ne peut pas avoir de constructeur **), ** Les objets tels que Felidae cat = new Felidae ();ne peuvent pas être créés **. De plus, puisquevoid meets Cats ()est une méthode abstraite, il est nécessaire de ** préparer une méthode concrète ** par la classe qui implémente l'interfaceFelidae` (override).

String type = cats; est un champ d'interface, mais il s'agit d'une ** constante ** et ne peut pas être modifiée. Ceci est dû au fait que les champs de l'interface sont dans le même état que ceux de "public static final" (je ne sais toujours pas pourquoi).

inplementedFlidae.java


class Housecat inplements Felidae
{
  void meetsCats()
  {
    System.out.println("J'ai trouvé un chat. Je pense que c'est un chat domestique quelque part.");
  }
}

Au lieu de l'extension ʻextends, il s'agit de ʻimplements, mais la forme est la même qu'auparavant.

Principe: une seule super classe

Pourquoi avons-nous besoin d'une interface de méthode abstraite? J'aimerais tout faire avec des extensions de classe, mais Java ** n'autorise pas l'héritage multiple par plusieurs classes **. Il n'y a qu'une seule superclasse de parents. Il semble que vous ne devriez pas penser de la même manière que le diagramme du système que les humains pensent. J'ai vu quelques raisons à cela, mais il semble qu'il y ait une certaine profondeur ici, comme l'appel lorsque le nom de la méthode est usé et le problème du diamant. Un autre langage, «C ++», permet cet héritage multiple.

Cependant, il est difficile d'utiliser ce que vous avez préparé une fois. Par conséquent, au lieu de l'héritage multiple par classes, nous essayons de maintenir la simplicité en tant que langage en n'autorisant qu'un héritage multiple partiel par classes abstraites et interfaces. ** La mise en œuvre de l'interface peut être effectuée avec deux ou plus **. Vous pouvez également ** étendre l'interface elle-même ** et «étendre» les super-interfaces aux sous-interfaces.

À la fin

En regardant la partie où l'héritage par extension est autorisé, je pense que Java est un langage qui est bon pour le développement descriptif. Connaître l'interface de classe déjà terminée et supposer que vous construirez une nouvelle classe tout en héritant de ses fonctions signifie que vous commencerez à étudier Java en connaissant d'abord les fonctions fournies par la bibliothèque standard.

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, interface pour partir du débutant
Changements de Java 8 à Java 11
Somme de Java_1 à 100
Migration de Cobol vers JAVA
Java à partir du débutant, remplacer
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
Java, instance à partir du débutant
Java à partir de débutant, héritage
Java8 pour démarrer maintenant ~ Facultatif ~
De Java inefficace à Java efficace
java débutant 4
[Java débutant] À propos de l'abstraction et de l'interface
java (interface)
java débutant 3
java débutant
interface [java]
Java sera impliqué dès aujourd'hui
De Java à VB.NET - Écriture de notes de contraste
Java, constructeur de surcharge à partir du débutant
La route de JavaScript à Java
Java, des tableaux pour débuter avec les débutants
Java 8 ~ Stream API ~ pour commencer maintenant
[Java] Conversion d'un tableau à une liste
Interface Essayez de créer un problème Java TypeScript 7-3
Importance de l'interface apprise de la collection Java
Java à partir du débutant, imbriqué / break / continue
Convertir l'heure UTC Java en heure JST
Connectez-vous de Java à MySQL à l'aide d'Eclipse
Java 8 pour démarrer maintenant ~ API de date et d'heure ~
De l'installation d'Eclipse à l'exécution de Java (PHP)
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Introduction à la surveillance à partir de Java Touching Prometheus
Java, pour instruction / while à partir du débutant
Précautions lors de la migration de VB6.0 vers JAVA
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
À propos de l'interface Java
Exercices pour les débutants Java
[Java] Introduction à Java
[Java] Interface fonctionnelle
À propos de l'interface, interface java
Introduction à Java
Exercice Java "Débutant"
[Java] De deux listes à une liste de tableaux
Deux façons de démarrer un thread en Java + @
Exécuter R à partir de Java Je veux exécuter rJava
Connectez-vous à Aurora (MySQL) depuis une application Java
Pour devenir programmeur VB.net depuis une boutique Java
Comment obtenir une classe depuis Element en Java
Java à partir du débutant, déclaration de classe / génération d'objet
[Java] Comment passer de jdk ouvert à jdk oracle
Java 8 pour démarrer maintenant ~ for Each et expression lambda ~
Je veux écrire rapidement de java vers sqlite
Développement de serveur Minecraft BE de PHP à Java
Sélectionnez * de Java SDK vers Azure Cosmos DB
À propos de l'interface fonctionnelle Java
Lancez Docker à partir de Java pour convertir des documents Office en PDF