Ich bin ein Anfänger, aber ich habe es für das persönliche Studium geschrieben
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
** * "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.
-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).
** 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
-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.
-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.
-Abstraktklassen mit Schnittstellenmerkmalen (abstrakte Methoden) können nicht wie Schnittstellen instanziiert werden **
① 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
}
Recommended Posts