[Java-Anfänger] Über Abstraktion und Schnittstelle

Überblick

Ich werde es als Rezension von ** Abstract ** und ** Interface ** veröffentlichen.

Abstraktion

Deklarieren Sie im oberen Modul die Methoden und Variablen, die üblicherweise im unteren Modul implementiert sind, und überlassen Sie die Implementierung dem unteren Modul. Außerdem können abstrahierte Klassen nicht instanziiert werden.

** - Vorteile der Abstraktion ** --Vorbeugung des Vergessens des Überschreibens

Human.java


public abstract class Human{
  private String name;
  public Human(String name){
    this.name = name;
  }
  public String getName(){
    return name;
  }
  public void setName(String name){
    this.name = name;  
  }
  //Deklarieren Sie eine gemeinsame Methode und überlassen Sie die Implementierung dem unteren Modul
  public abstract void talk();
  //Methode, die nichts tut
  public void tmp(){}
}

Japanese.java


public class Japanese extends Human{
  public Japanese(String name){
    super(name);
  }
  @Override
  public void talk(){
    System.out.println("Hallo");
  }
}

American.java


public class American extends Human{
  public American(String name){
    super(name);
  }
  @Override
  public void talk(){
    System.out.println("Hello");
  }
}

Main.java


public class Main{
  public static void main(String[] args){
    //Human human = new Human("Yamada Taro");
    //Kompilierungsfehler, da keine Instanz erstellt werden kann

    Japanese jp = new Japanese("Yamada Taro");
    jp.talk();    //Hallo
    American en = new American("TaroYamada");
    en.talk();    //Hello

  }
}

Schnittstelle

In der Schnittstelle können Sie eine Methode deklarieren, die wie in der Abstraktion gemeinsam implementiert werden soll, und die Implementierung der Klasse überlassen, die die Schnittstelle erbt. Felder werden jedoch anders behandelt als abstrakte Klassen.

** Schnittstellenfunktionen **

Grundsätzlich ist es nicht erlaubt, Felder in der Schnittstelle zu implementieren, sondern es können nur Felder mit ** public static final ** deklariert werden. Diese werden automatisch hinzugefügt, wenn die Variablendeklaration über den Typnamen in der Schnittstelle gestartet wird. Getan werden. Da es einen ** endgültigen ** Modifikator gibt, der nicht neu zugewiesen werden kann, muss er gleichzeitig mit der Variablendeklaration initialisiert werden.

In Bezug auf Methoden sind die Methoden, die in der Schnittstelle deklariert werden können, auf diejenigen beschränkt, die ** öffentlich ** und ** abstrakt ** sind, und werden automatisch hinzugefügt, wenn sie vom Rückgabetyp deklariert werden.

Creature.java


public interface Creature{
  //public static final double PI = 3.14;
  double PI = 3.14; //Es wird automatisch zu einer öffentlichen statischen Endvariablen.
  
  //public abstract void breath();
  void breath();  //Es wird automatisch zu einer öffentlichen abstrakten Methode.
}

Zusammenfassung

Mein ehrlicher Eindruck ist, dass es schwierig ist, von den Vorteilen zu profitieren, da ich wenig Entwicklungserfahrung mit Vererbung habe.

Recommended Posts

[Java-Anfänger] Über Abstraktion und Schnittstelle
Über die Java-Schnittstelle
[Java] -Schnittstelle
Über Schnittstelle, Java-Schnittstelle
Informationen zur Java-Funktionsschnittstelle
[Java] Über String und StringBuilder
Über Java-Paket und Import
Informationen zu statischen und nicht statischen Java-Methoden
Unterschiede zwischen "Anfänger" Java und Kotlin
Über Biocontainer fastqc und Java
Java Anfänger 4
Java (Schnittstelle)
Java Anfänger 3
[Java-Anfänger] == Operator und Gleiche Methode
Java Anfänger
[Java] -Schnittstelle
[JAVA] Unterschied zwischen Abstract und Interface
Java, Schnittstelle für Anfänger
Informationen zu primitiven Java-Typen und Referenztypen
Dies und das über Base64 (Java)
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
Java für Anfänger, Variablen und Typen
[Über JDBC, das Java und SQL verbindet]
[Java / Swift] Vergleich von Java-Schnittstelle und Swift-Protokoll
[Java-Anfänger] Informationen zur Initialisierung eines mehrdimensionalen Arrays
[Java] Inhalt der Collection-Schnittstelle und der List-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
[Java] Über Arrays
Schnittstelle und Zusammenfassung
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
Übungen für Java-Anfänger
Über Java-Threads
Über die Java-Klasse
Java und JavaScript
Informationen zu Java-Arrays
XXE und Java
[Java] Funktionsschnittstelle
Über Java-Vererbung
Vererbung und Schnittstelle.
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
Java-Übung "Anfänger"
[ev3 × Java] Schnittstelle, Implementierung und Vererbung (Ereignisverarbeitung)
Informationen zu Java-Datentypen (insbesondere primitiven Typen) und Literalen
Erstellen Sie eine Java-Umgebung und geben Sie Hallo Welt aus [Anfänger]
Informationen zur Java-Protokollausgabe
Java, über zweidimensionales Array
Kommentar: Über die Schnittstelle
Über [Java] [StreamAPI] allMatch ()
Getter und Setter (Java)
Informationen zur Java StringBuilder-Klasse
Aufrufbare Schnittstelle in Java
[Java] Thread und ausführbar
Java-Standardfunktionstyp-Schnittstelle
Java wahr und falsch
[Java] Über Singleton Class