Heim Java javaLernprogramm Objektorientiert (Schnittstelle, Polymorphismus)

Objektorientiert (Schnittstelle, Polymorphismus)

Jun 26, 2017 am 11:09 AM
多态 对象 接口 面向

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         }
Nach dem Login kopieren

Transformation im Polymorphismus

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

Vor- und Nachteile von Polymorphismus

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){

Downcast

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die internen Schnittstellen eines Computer-Motherboards? Empfohlene Einführung in die internen Schnittstellen eines Computer-Motherboards Was sind die internen Schnittstellen eines Computer-Motherboards? Empfohlene Einführung in die internen Schnittstellen eines Computer-Motherboards Mar 12, 2024 pm 04:34 PM

Obwohl der Installationsprozess einfach ist, stoßen Benutzer beim Zusammenbau des Computers häufig auf Probleme mit der Verkabelung. Obwohl sich der Lüfter drehen kann, funktioniert er beim Booten möglicherweise nicht. Es kommt zu einem F1-Fehler „CPUFanError“, der auch dazu führt, dass der CPU-Kühler die Geschwindigkeit nicht intelligent anpassen kann. Lassen Sie uns das allgemeine Wissen über die Schnittstellen CPU_FAN, SYS_FAN, CHA_FAN und CPU_OPT auf der Hauptplatine des Computers teilen. Populäre Wissenschaft über die Schnittstellen CPU_FAN, SYS_FAN, CHA_FAN und CPU_OPT auf der Hauptplatine des Computers 1. CPU_FANCPU_FAN ist eine dedizierte Schnittstelle für den CPU-Kühler und arbeitet mit 12 V

Gängige Programmierparadigmen und Entwurfsmuster in der Go-Sprache Gängige Programmierparadigmen und Entwurfsmuster in der Go-Sprache Mar 04, 2024 pm 06:06 PM

Als moderne und effiziente Programmiersprache verfügt die Go-Sprache über umfangreiche Programmierparadigmen und Entwurfsmuster, die Entwicklern beim Schreiben von qualitativ hochwertigem, wartbarem Code helfen können. In diesem Artikel werden gängige Programmierparadigmen und Entwurfsmuster in der Go-Sprache vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Objektorientierte Programmierung In der Go-Sprache können Sie Strukturen und Methoden verwenden, um objektorientierte Programmierung zu implementieren. Durch die Definition einer Struktur und das Binden von Methoden an die Struktur können die objektorientierten Funktionen der Datenkapselung und Verhaltensbindung erreicht werden. Paketmaini

Virtuelle C++-Funktionstabelle und polymorphe Implementierung, wie man Speicherverschwendung vermeidet Virtuelle C++-Funktionstabelle und polymorphe Implementierung, wie man Speicherverschwendung vermeidet May 31, 2024 pm 07:03 PM

Virtuelle Basisklassen optimieren den Speicheraufwand für virtuelle Tabellen, indem sie die Vererbung von mehreren Basisklassen ermöglichen, ohne zusätzliche virtuelle Tabellen zu erstellen. Im optimierten Code verfügt die Formbasisklasse nicht mehr über eine virtuelle Funktionstabelle, und die Kreis- und Rechteckklassen teilen sich dieselbe virtuelle Funktionstabelle, wodurch der Speicherverbrauch reduziert wird.

Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Apr 29, 2024 pm 01:09 PM

So konvertieren Sie ein MySQL-Abfrageergebnis-Array in ein Objekt: Erstellen Sie ein leeres Objekt-Array. Durchlaufen Sie das resultierende Array und erstellen Sie für jede Zeile ein neues Objekt. Verwenden Sie eine foreach-Schleife, um die Schlüssel-Wert-Paare jeder Zeile den entsprechenden Eigenschaften des neuen Objekts zuzuweisen. Fügt dem Objektarray ein neues Objekt hinzu. Schließen Sie die Datenbankverbindung.

Einführung in PHP-Schnittstellen und deren Definition Einführung in PHP-Schnittstellen und deren Definition Mar 23, 2024 am 09:00 AM

Einführung in die PHP-Schnittstelle und wie sie definiert ist. PHP ist eine in der Webentwicklung weit verbreitete Open-Source-Skriptsprache. Sie ist flexibel, einfach und leistungsstark. In PHP ist eine Schnittstelle ein Werkzeug, das gemeinsame Methoden zwischen mehreren Klassen definiert, um Polymorphismus zu erreichen und Code flexibler und wiederverwendbar zu machen. In diesem Artikel werden das Konzept von PHP-Schnittstellen und deren Definition vorgestellt und spezifische Codebeispiele zur Veranschaulichung ihrer Verwendung bereitgestellt. 1. PHP-Schnittstellenkonzept Die Schnittstelle spielt eine wichtige Rolle in der objektorientierten Programmierung und definiert die Klassenanwendung

Lösung für NotImplementedError() Lösung für NotImplementedError() Mar 01, 2024 pm 03:10 PM

Der Grund für den Fehler liegt in Python. Der Grund, warum NotImplementedError() in Tornado ausgelöst wird, kann darin liegen, dass eine abstrakte Methode oder Schnittstelle nicht implementiert ist. Diese Methoden oder Schnittstellen werden in der übergeordneten Klasse deklariert, aber nicht in der untergeordneten Klasse implementiert. Unterklassen müssen diese Methoden oder Schnittstellen implementieren, um ordnungsgemäß zu funktionieren. Die Lösung dieses Problems besteht darin, die von der übergeordneten Klasse deklarierte abstrakte Methode oder Schnittstelle in der untergeordneten Klasse zu implementieren. Wenn Sie eine Klasse verwenden, um von einer anderen Klasse zu erben, und dieser Fehler angezeigt wird, sollten Sie alle in der übergeordneten Klasse deklarierten abstrakten Methoden in der untergeordneten Klasse implementieren. Wenn Sie eine Schnittstelle verwenden und dieser Fehler angezeigt wird, sollten Sie alle in der Schnittstelle deklarierten Methoden in der Klasse implementieren, die die Schnittstelle implementiert. Wenn Sie sich nicht sicher sind, welches

Was ist der Unterschied zwischen Arrays und Objekten in PHP? Was ist der Unterschied zwischen Arrays und Objekten in PHP? Apr 29, 2024 pm 02:39 PM

In PHP ist ein Array eine geordnete Sequenz, und auf Elemente wird über einen Index zugegriffen. Ein Objekt ist eine Entität mit Eigenschaften und Methoden, die über das Schlüsselwort new erstellt werden. Der Array-Zugriff erfolgt über einen Index, der Objektzugriff über Eigenschaften/Methoden. Es werden Array-Werte und Objektreferenzen übergeben.

Was ist das Request-Objekt in PHP? Was ist das Request-Objekt in PHP? Feb 27, 2024 pm 09:06 PM

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun

See all articles