[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??

Erklären Sie den Unterschied grob

Schnittstelle ・ ・ ・ Keine Klasse (wichtig)
abstrakt ・ ・ ・ Modifikatoren für Klassen usw.

Über die Schnittstelle

① Variable

Kann Variablen deklarieren und implementieren. "Public static final" wird jedoch implizit hinzugefügt.

interface noTsukaikata {
	int Num = 6; //Da final angehängt ist, kann es nicht initialisiert werden. → Es wird als Konstante behandelt.
}
② Methode

Es können nur abstrakte Methoden deklariert werden.

interface noTsukaikata {
	void method(); //Deklaration der abstrakten Methode (Methode in der Schnittstelle erhält abstrakte Klausel)
	// abstract void method();Wird automatisch in konvertiert.
}

Tatsächlich kann es mithilfe der Standardklausel oder der statischen Klausel implementiert werden.

interface deJisou{
	//Implementieren Sie Methoden in der Schnittstelle mithilfe der Standardklausel
	default void method1(){
		//more codes here
	}

	//Implementieren Sie Methoden in der Schnittstelle mithilfe einer statischen Klausel
	static void method2(){
		//more codes here
	}

	//Kompilierungsfehler ohne Standard- oder statische Klausel
	void method3() {
		//more codes here
	}
}
③ Vererbungsmethode

Schnittstelle kann nur Geräte erben.

interface Super{
	int Num;
	default void method1(){
		//more codes here.
	}
	static void method2(){
		//more codes here.
	}
	void method3();
}

class Sub implements Super{
	//Da die Variable endgültig ist, muss sie nicht geschrieben werden.

	//Da die Standardmethode bereits implementiert wurde, muss sie nicht in der Unterklasse implementiert werden. Kann bei Bedarf überschrieben werden.

	//Da die statische Methode nicht vererbt wird, kann sie nicht in der Unterklasse implementiert werden.

	//Implementieren Sie method3
	@Override 
	protected void method3(){//Offenlegungsbereich(Umfang)Der Zugriffsmodifikator kann geändert werden, solange er nicht eingegrenzt ist.
		//more codes here.
	}
}

Der Inhalt der Unterklasse durch Erben des Obigen ist wie folgt.


class Sub implements Super{
	int Num = 6;
	default void method1(){
		//more codes here.
	}
	//Es gibt keine statische Methode, da sie nicht vererbt wird.
	protected void method3(){
		//more codes here.
	}
}

Über abstrakt

① Variable

Genauso behandelt wie eine reguläre Klasse.

abstract class Super {
	int Num1;      //Kann deklariert werden
	int Num2 = 6;  //Kann initialisiert werden
	abstract int Num3 = 10;  //Kompilierungsfehler (Variablen können nicht abstrahiert werden)
}
② Methode

Es können auch abstrakte Methoden deklariert werden.

interface Super {
	abstract void method1(); //Sie können abstrakte Methoden deklarieren.
	void method2() {}        //Es kann ohne die abstrakte Klausel implementiert werden.
}
③ Vererbungsmethode

abstrakt kann nur erweitert erben.

abstract class Super {
	int Num1;
	int Num2 = 6;
	abstract void method1();
	void method2() {}
}

class Sub extends Super{
	@Override 
	void method1() {}
}

Der Inhalt der Unterklasse durch Erben des Obigen ist wie folgt.


class Sub extends Super{
	int Num1;
	int Num2 = 6;
	void method1() {}
	void method2() {}
}

Was war der Unterschied? ?? ??

interface abstract
Variable Automatisch "public static final" Genau das gleiche wie die reguläre Klasse
Methode 基本的に抽象Methodeのみ宣言できる。ただし、「default」や「static」句を利用し、実装できる。 抽象Methodeも宣言できる。
Vererbungsmethode Von Geräten geerbt. Unterklassen implementieren alle abstrakten Methoden. Vererbt von erstreckt. Unterklassen implementieren alle abstrakten Methoden.

Ergänzung

Was ist der Unterschied zwischen Geräten und Erweiterungen? ?? ??

implementiert ・ ・ ・ Schnittstelle erben. erweitert ・ ・ ・ Erbt die Klasse.

Fazit,

Schnittstelle ・ ・ ・ Keine Klasse
abstrakt ・ ・ ・ Modifikatoren für Klassen usw.

Recommended Posts

[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
[JAVA] Unterschied zwischen Abstract und Interface
Was ist der Unterschied zwischen SimpleDateFormat und DateTimeFormatter? ??
[Java] Was ist der Unterschied zwischen Form, Entität und dto? [Bohne]
Was ist der Unterschied zwischen Systemspezifikation und Funktionsspezifikation?
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
Was ist der Unterschied zwischen Überspringen und Ausstehend? [RSpec]
[Rails] Was ist der Unterschied zwischen Bundle-Installation und Bundle-Update?
Was ist der Unterschied zwischen einer Aktion und einer Instanzmethode?
Was ist der Unterschied zwischen einem Webserver und einem Anwendungsserver?
[Java] Verstehe den Unterschied zwischen List und Set
Verstehe den Unterschied zwischen abstrakten Klassen und Schnittstellen!
[Java] Unterschied zwischen == und gleich
[Java] Unterschied zwischen Hashmap und HashTable
[Java] Unterschied zwischen Array und ArrayList
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
Unterschied zwischen Java und JavaScript (wie man den Durchschnitt findet)
Was ist die LocalDateTime-Klasse? [Java-Anfänger] -Datum und Zeitklasse-
[Java] Überprüfen Sie den Unterschied zwischen orElse und orElseGet mit IntStream
Ist die Kurzschlussauswertung wirklich schnell? Unterschied zwischen && und & in Java
Was ist der Unterschied zwischen den Verantwortlichkeiten der Domänenschicht und der Anwendungsschicht in der Zwiebelarchitektur [DDD]?
Unterschied zwischen final und Immutable in Java
Was ist java
Schnittstelle und Zusammenfassung
[Für Anfänger] Unterschied zwischen Java und Kotlin
Was ist das beste Lesen von Dateien (Java)
Was ist Java und Entwicklungsumgebung (MAC)
Was ist Java <>?
Was ist die Hauptmethode in Java?
Was ist java
Über den Unterschied zwischen irb und pry
[Java] Unterschied zwischen Intstream-Bereich und rangeClosed
Unterschied zwischen int und Integer in Java
Java vs. JavaScript: Was ist der Unterschied?
Ein Hinweis zu den Unterschieden zwischen Schnittstellen und abstrakten Klassen in Java
Verstehen Sie den Unterschied zwischen int und Integer und BigInteger in Java und float und double
[Rails / Active Record] Über den Unterschied zwischen create und create!
Was ist das Java Servlet / JSP MVC-Modell?
Was ist der flüchtige Modifikator für Java-Variablen?
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
[Java] Unterschied zwischen "endgültiger Variable" und "unveränderlichem Objekt"
Was ist eine Schnittstelle?
abstrakt (abstrakte Klasse) und Schnittstelle (Schnittstelle)
Was ist Java-Kapselung?
Was ist Java-Technologie?
Was ist Java API-Java?
Unterschied zwischen vh und%
[Java] Was ist flatMap?
Unterschied zwischen i ++ und ++ i
[Java] Was ist ArrayList?
[Java] Unterschied zwischen gleich und == in einer Zeichenfolge, die ein Referenztyp ist
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
[Rails] Ich habe den Unterschied zwischen Ressourcen und Ressourcen untersucht