[JAVA] Schnittstelle / Abstrakte Klasse / Überschreiben

Ich bin ein Anfänger, aber ich habe es für das persönliche Studium geschrieben

Schnittstelle

Eine Schnittstelle bietet keine spezifische Verarbeitung wie eine Klasse, wird jedoch explizit angegeben, um ** Regeln ** zu definieren, und die tatsächliche Verarbeitung wird von der Klasse definiert, die die Schnittstelle implementiert. In einem Unternehmen, in dem mehrere Personen ein Programm erstellen, kann daher auch die von anderen Personen erstellte untergeordnete Klasse verwendet werden, indem die Methode, die die untergeordnete Klasse in der übergeordneten abstrakten Klasse implementieren soll, als abstrakte Methode definiert wird. Es ist von Vorteil, dass die Methode immer implementiert ist

** * Abstrakte Methode ** ・ ・ ・ Eine Methode, die nur den Namen / Typ / das Argument definiert

① Nur die "Form" wird aus der Klasse genommen

** * "Typ" ** ... selbst ** "So entscheiden Sie, wie mit der Variablen umgegangen wird" ** und beim Deklarieren einer Variablen wird der Typ angegeben, um zu entscheiden, wie mit der Variablen umgegangen werden soll.

-Es sollte beachtet werden, dass ** der Typ des zu behandelnden Objekts und der vom Typ angegebene "Typ des zu behandelnden Objekts" unterschiedliche Konzepte sind **. Beispielsweise unterscheiden sich Typ und Behandlungsmethode, sodass der numerische Wert 1 als int-Typ oder doppelter Typ behandelt werden kann.

(2) Diejenigen, die "Behandlung" aus anderen Klassen angeben

-Die Schnittstelle wird vom Compiler ** automatisch veröffentlicht **, da alle angegebenen Methoden als öffentlich interpretiert werden, damit sie von anderen Klassen verarbeitet werden können. -Methoden, die in der Schnittstelle definiert sind, können nicht mit geschützt oder privat qualifiziert werden (ab Java8 kann der Inhalt auch durch Hinzufügen des Standardmodifikators definiert werden).

③ Die Schnittstelle kann nicht implementiert werden

** Da die Schnittstelle nur angibt, wie mit ** umgegangen werden soll, ** kann keine Implementierung ** vorhanden sein. Erstellen Sie daher eine Instanz und ** beschreiben Sie etwas, das dynamisch funktioniert (etwas, das sich dynamisch ändert). Kann nicht** Es kann jedoch beschrieben werden, ob eine der beiden folgenden Bedingungen erfüllt ist.

-Verwenden Sie ** final ** und der Wert sollte nicht dynamisch geändert werden (konstant) -Kann keine Instanz mit ** static ** erstellen

④ Schnittstellenvererbung

-Inheritance kann eine neue Klasse definieren, die die Klassenfunktion erweitert, wie Sie anhand von extenses sehen können. Sie können jedoch auch eine neue Schnittstelle definieren (erben), die eine bestimmte Schnittstelle mit extensions erweitert.

Abstrakte Klasse

① Hat sowohl Schnittstellen- als auch Klasseneigenschaften

-Sie können sowohl eine konkrete Methode ** mit einer Implementierung als auch eine abstrakte Methode ** ohne Implementierung haben. -Die in der abstrakten Klasse definierte konkrete Methode wird von der Unterklasse geerbt, die die abstrakte Klasse erbt.

② Kann nicht instanziiert werden

-Abstraktklassen mit Schnittstellenmerkmalen (abstrakte Methoden) können nicht wie Schnittstellen instanziiert werden **

③ Felddefinition

überschreiben

Override hat drei Regeln

① Um die Methode neu zu definieren, müssen die ** Signaturen der Methoden identisch sein ** ** Signatur **: Eine Kombination aus Methodenname, Argumentlistentyp, Nummer und Reihenfolge ② ** Der Rückgabewert muss derselbe oder eine Unterklasse sein ** ③ ** Zugriffsmodifikatoren können lockerer als die ursprüngliche Definition sein, aber nicht streng ** -Das folgende Beispiel kann überschrieben werden, da der Integer-Typ eine Unterklasse vom Typ Number ist.

Sample.java


public Number method{
//any code
}

Sample.java


public Integer method{
//any code
}

Override hinzugefügt (neu definiert)

Recommended Posts

Schnittstelle / Abstrakte Klasse / Überschreiben
Unterschied zwischen Schnittstelle und abstrakter Klasse
Java (abstrakte Klasse)
Schnittstelle und Zusammenfassung
[Java] Abstrakte Klasse
Richtige Verwendung der Schnittstelle und der abstrakten Klasse
Java Basic Learning Content 6 (Vererbung / Abstrakte Klasse / Schnittstelle)
Über die abstrakte Klasse von Java
Verwendung von Abstract Class und Interface in Java richtig
Zusammenfassung der erweiterten Vererbung, Schnittstelle -java
Java-Lernnotiz (abstrakte Klasse)
Schnittstelle