Java 8 studieren (StaticIF und Standardmethode)

Es ist mein erster Beitrag, daher ist es leicht, sich daran zu gewöhnen. Obwohl Java 9 veröffentlicht wurde, denke ich, dass es jetzt Java 8 ist.

Erstellen Sie zunächst eine IF mit der Methode StaticIF und Default.

package java8.staticIfAndDefaultIf;

/**
 *Zum Testen von StaticIF und Standardmethoden (Studium von Java8)
 * @author komikcomik
 *
 */
public interface StaticIF {

	/**Dies ist die Standardmethode*/
	public default void helloDefault() {
		System.out.println("hello Default");
	}

	/**Es ist eine normale Methode*/
	public void hello();

	/**Statische Methode*/
	public static void helloStatic() {
		System.out.println("hello static");
	}

}

Nun, es scheint, dass statische Methoden jetzt in IF wie folgt implementiert werden können. Das Folgende ist die Implementierung der obigen statischen IF-Schnittstelle.

package java8.staticIfAndDefaultIf;

/**
 *StaticIF-Implementierungsklasse.
 * @author komikcomik
 *
 */
public class StaticIFImpl implements StaticIF{

	@Override
	public void hello() {
		System.out.println("hello in Impl");
	}

}

Übrigens noch einer. Dies hat die Standardmethode überschrieben.

package java8.staticIfAndDefaultIf;

/**
 *StaticIF-Implementierungsklasse.
 *Dies hat die Standardmethode überschrieben.
 * @author komikcomik
 *
 */
public class StaticIFImplDefaultOverride implements StaticIF {
	@Override
	public void hello() {
		System.out.println("hello in ImplDefaultOverride");
	}

	public void helloDefault() {
		System.out.println("override default");

	}
}

Schließlich habe ich eine Klasse erstellt, um diese beiden Klassen aufzurufen.

package java8.staticIfAndDefaultIf;

/**
 *Eine Person, die zwei Klassen aufruft, die StaticIF implementieren.
 * @author komikcomik
 *
 */
public class StaticIFCaller {

	public static void main(String[] args) {
		StaticIF staticIF = new StaticIFImpl();
		staticIF.hello(); //Es stellt sich heraus, dass es mit StaticIFImpl implementiert wurde.
		staticIF.helloDefault(); //Die staticIF-Standardmethode wird angezeigt.
		StaticIF.helloStatic(); //Die statische Methode von StaticIF wird angezeigt.

		StaticIF staticIF2 = new StaticIFImplDefaultOverride();
		staticIF2.hello(); //Es stellt sich heraus, dass es mit StaticIFImplDefaultOverride implementiert wurde
		staticIF2.helloDefault(); //Der Inhalt von StaticIF wurde überschrieben und mit StaticIFImplDefaultOverride implementiert.

	}
}

Unten ist das Ausführungsergebnis. Das ist wie erwartet.

hello in Impl
hello Default
hello static
hello in ImplDefaultOverride
override default

Ist es nicht möglich, dass die Standardmethode nicht verwendet werden kann, wenn dieselbe Verarbeitung widerstrebend in eine Unterklasse geschrieben wird, die IF erbt? StaticIF schien nicht sehr nützlich zu sein.

Recommended Posts

Java 8 studieren (StaticIF und Standardmethode)
[Java] Generics-Klasse und Generics-Methode
Java-Methoden und Methodenüberladungen
Java abstrakte Methoden und Klassen
Java studieren ―― 3
Informationen zu statischen und nicht statischen Java-Methoden
Java studieren ―― 9
Java-Methoden
Java studieren ―― 4
Java studieren ―― 1
Java-Methoden
Java studieren ―― 8
Java studieren ②
Java Generics (definiert Klassen und Methoden)
Java studieren ―― 7
Java 8 studieren (String Joiner und Join)
Java studieren ―― 2
Java studieren ①
Java9 studieren (dropWhile, takeWhile und Stream.ofNullable)
Java studieren -10
Java-Programmierung (Klassen und Instanzen, Hauptmethoden)
JAVA lernen Geschichte abstrakte Klassen und Methoden
Java-Klassenmethoden
Java 8 studieren (optional)
Funktionen und Methoden
Java9 studieren (jShell)
Java und JavaScript
XXE und Java
Java 8 studieren (Stream)
Überprüfen Sie das statische und öffentliche Verhalten in Java-Methoden
Mischen Sie Testfälle mit JUnit 5 und Standardmethoden
So greifen Sie auf Java Private-Methoden und -Felder zu
Getter und Setter (Java)
Java 8 studieren (Sammler / Sammler)
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Java 8 studieren (siehe Methode)
Java 8 studieren (siehe Konstruktor)
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Java studieren ~ Teil 8 ~ Besetzung
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
Java 8 studieren (Lambda-Ausdruck)
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
Definieren Sie abstrakte Methoden in Java enum und schreiben Sie deren Verhalten
Denken Sie über die Unterschiede zwischen Funktionen und Methoden nach (in Java)
Studiere Java # 2 (\ mark and operator)
Java Version 8 und neuere Funktionen
[Java] Unterschied zwischen == und gleich
[Java] Stapelbereich und statischer Bereich
(Hinweis) Java-Klassen / Variablen / Methoden
Java-Programmierung (Variablen und Daten)
Java-Ver- und Entschlüsselung PDF
Schienenpfad und URL-Methoden
Überprüfen Sie die private Methode der Java9-Schnittstelle
Definition und Instanziierung von Java-Klassen