Heim >Java >javaLernprogramm >Objektorientiert (Schnittstelle, Polymorphismus)
Schnittstelle
(1) Wenn die Methoden in der abstrakten Klasse abstrakt sind, stellt Java eine neue Ausdrucksform bereit: Schnittstelle, bei der es sich um eine Sammlung von Funktionen handelt, die nicht erstellt werden können
(2) Format
Übergeordnete Schnittstelle: öffentliche Schnittstelle Tnter{
}
Unterklasse: öffentliche Klasse interImp implementiert Itner{
}
Verwendung von Schnittstellen
1. Schnittstellen können keine Objekte erstellen
2. Implementierungsklassen definieren, um Schnittstellen zu implementieren
Implementierungsschlüsselwörter implementieren
3. Abstrakte Methoden überschreiben
4. Erstellen Sie Implementierungsklassenobjekte und rufen Sie Methoden auf
Merkmale von Schnittstellen
1. Muss nicht durch Zusammenfassung geändert werden
2 .Eine Klasse implementiert eine Schnittstelle, die einzeln oder auf mehrere Arten implementiert werden kann
3. Eine Schnittstelle kann von einer Schnittstelle entweder einzeln oder auf mehrere Arten erben
4. Die Funktionen einer Schnittstelle und einer übergeordneten Klasse können wiederholt werden, Das bedeutet, dass sie bestimmte Funktionen haben müssen.
Member-Eigenschaften von Schnittstellen
Member-Variablen, statische Konstanten
Fester Modifikator public static final
Unabhängig davon, ob dieser Modifikator geschrieben ist oder nicht bleibt unverändert
Member-Methode
Fester Modifikator öffentliche Zusammenfassung
Ob geschrieben oder nicht, dieser Modifikator bleibt unverändert
Abstrakte Klasse und Unterschiede in Schnittstellen
1. Unterschiede in den Mitgliedern
Abstrakte Klasse:
Mitgliedsvariablen: Können Variablen oder Konstanten sein
Konstruktor: Es gibt einen Konstruktor für die Instanziierung von Unterklassen. Verwenden Sie die Mitgliedsmethode
: Das kann abstrakt oder nicht abstrakt sein
Schnittstelle:
Mitgliedsvariable: kann nur eine Konstante sein
Standardmodifikator: öffentliches statisches Finale
Mitgliedsmethode: Kann nur abstrakt sein
Standardmodifikator: öffentliche Zusammenfassung
Empfehlung: Bitte geben Sie den Standardmodifikator immer manuell ein
2. Der Unterschied zwischen Klassen und Schnittstellen
Klassen und Klassen:
Vererbungsbeziehung, nur Einzelvererbung ist möglich, mehrstufige Vererbung ist möglich
Klassen und Schnittstellen:
Implementierungsbeziehung, einzelne Implementierung oder mehrere Implementierungen sind möglich
Klasse auch Sie können eine Klasse erben und mehrere Schnittstellen gleichzeitig implementieren
Schnittstelle und Schnittstelle:
Vererbungsbeziehung, Sie können Einzelvererbung oder Mehrfachvererbung haben
3 Die verkörperten Konzepte sind unterschiedlich
Was ist in definiert Abstrakte Klassen sind gemeinsame Inhalte in einem Vererbungssystem.
Schnittstellen sind eine Sammlung von Funktionen, zusätzlichen Funktionen eines Systems und offengelegten Regeln.
Alles wird überall dort verwendet, wo die übergeordnete Klasse/Schnittstelle verweist, ihre Unterklasse /implementation-Klassenobjekt kann übergeben werden in
Polymorphismus
Dasselbe Objekt kann zu unterschiedlichen Zeiten reflektiert werden. Verschiedene Zustände
Beispiel: Wasser (Wasser, Eis, Wasserdampf)
Katze (Katze, Tier)
Voraussetzung:
A: Es besteht eine Vererbungs- oder Implementierungsbeziehung
B: Es gibt Methoden Umschreiben
C: Eine Referenz aus der übergeordneten Klasse zeigt auf das Unterklassenobjekt
Merkmale der Verwendung von Mitgliedern im Polymorphismus
Fu fz=new Zi();
Wenn polymorph, sind alle Ausdrücke die übergeordnete Klasse. Die Ausdrucksform
ist nur vorhanden, wenn eine Methode aufgerufen wird , die von der Unterklasse neu geschriebene Methode wird ausgeführt
1. Mitgliedsvariablen
Kompilieren und links sehen Links und laufen. Schauen Sie nach rechts
1 class Fu{ 2 int num=4; 3 void show(){ 4 system.out.println("showFu") 5 } 6 7 } 8 class Zi extends Fu{ 9 10 int num=5;11 void show(){12 system.out.println("showZi");13 }14 }15 class T{16 public static void main(String args[]){17 Fu f=new Zi();18 system.out.println(f.num);19 f.show();20 }21 }
1. Aufwärtstransformation Weisen Sie die zu Unterklassenobjekt auf Die Referenz der übergeordneten Klasse (Schnittstelle) wird automatisch zum Typ heraufgestuft
int a=0; double b=a;
Fu fz=new Zi();
2. Downcast
zu Die Referenz der übergeordneten Klasse (Schnittstelle) wird in ein Unterklassenobjekt umgewandelt
double b=10.0;
int a=(int)b;
Fu fz=new Zi();
Zi zi=(Zi )fz;
Hinweis: Fu fu=new Fu() kann nicht abwärts konvertiert werden und meldet eine ClassCastException-Typkonvertierungsausnahme
1. Vorteile Verbessert die Wartbarkeit und Skalierbarkeit des Programms
2. Nachteile
Unterklassenspezifischer Inhalt kann nicht angewendet werden
Wenn Sie ihn verwenden möchten, müssen Sie das Unterklassenobjekt entweder herabsetzen oder neu erstellen
Drei Formen des Polymorphismus
1. Polymorphismus der konkreten Klasse, Name der Variablen der übergeordneten Klasse = neue Unterklasse () 2. Polymorphismus der abstrakten Klasse, Name der übergeordneten Variablen der abstrakten Klasse = neue Unterklasse ()
3. Schnittstellenpolymorphismus Schnittstellenvariablenname = neue Implementierungsklasse ()
Instanz des Schlüsselworts
Format: Objektname, Instanz des Klassennamens Rückgabewert: wahr, falsch
Funktion : Bestimmen Sie, ob das angegebene Objekt ein von einer bestimmten Klasse erstelltes Objekt ist
Animal a1=new Cat();
Animal a2=new Dog();
method(a1)
public static void method(Animal a){
if(a instanceof Cat){
Cat-spezifische Methode aufrufen
}
}
Das obige ist der detaillierte Inhalt vonObjektorientiert (Schnittstelle, Polymorphismus). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!