Abstrakte Klasse:
1. Die Klasse selbst muss als abstrakt deklariert werden.
2. Abstrakte Klassen können neben abstrakten Methoden auch konkrete Daten und spezifische Methoden enthalten
3. Zwei Möglichkeiten zur Erweiterung abstrakter Klassen (die spezifische Implementierung abstrakter Methoden erfolgt in Unterklassen):
A. Wenn eine abstrakte Klasse einige abstrakte Klassen definiert oder keine abstrakten Klassenmethoden definiert, muss die Unterklasse auch als abstrakte Klasse markiert werden.
B. Definieren Sie alle abstrakten Methoden, sodass die Unterklasse nicht abstrakt ist
4. Sie kann nicht direkt instanziiert werden, kann aber indirekt verwendet werden
5. Wenn eine Klasse To Wenn Sie eine abstrakte Klasse erben möchten, müssen Sie die in der abstrakten Klasse deklarierte abstrakte Methode implementieren.
Wenn nicht, müssen Sie sich selbst als abstrakte Klasse deklarieren (dies kann eine Frage sein)
Lassen Sie uns über die neuen Funktionen von Schnittstellen in JDK8 sprechen:
Schnittstellen können nicht mehr nur abstrakte Methoden verwenden, Sie können spezifische Methoden hinzufügen, die statisch oder nicht sein können -static Ja, das Schlüsselwort defualt muss vor nicht statischen Methoden verwendet werden.
Statische Methoden können nur von Sockets referenziert werden, und nicht statische Methoden können nur von Objekten referenziert werden, die von der Implementierungsklasse instanziiert werden. Wenn daher die statischen Methodennamen zweier Schnittstellen gleich sind, gibt es kein Problem und sie können nur über den Klassennamen der Schnittstelle referenziert werden. Bei nicht statischen Methoden treten Probleme auf, da das Objekt nicht weiß, welche Schnittstellenmethode es verwenden soll, was zu Kompilierungsfehlern führt.
Das Folgende ist eine Codedemonstration
package 面向对象;//JDK8的接口新特性。interface A {public abstract void hehe();//传统抽象方法public static void haha()//静态方法 { System.out.println("haha"); }public default void lala() { System.out.println("lala");//非静态要加关键字default } }public class Test implements A {public static void main(String[] args)//因为不是抽象的所以可以重写也可以直接使用。 { A.haha();//不能被Test调用new Test().lala();//非静态要创建实例使用 } }
Der Zauber liegt darin sind abstrakte Methoden Ja, die Unterklasse überschreibt die abstrakte Methode nicht und die virtuelle Maschine meldet keinen Fehler, was darauf hinweist, dass die Schnittstelle die abstrakte Standardmethode nicht schreiben muss.
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung abstrakter Klasseninstanzen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver Mac
Visuelle Webentwicklungstools

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),