Heim > Java > javaLernprogramm > Hauptteil

Polymorphismusanwendung von Schnittstellen und abstrakten Klassen in Java

PHPz
Freigeben: 2024-05-02 10:33:01
Original
1178 Leute haben es durchsucht

In Java wird Polymorphismus durch Schnittstellen und abstrakte Klassen erreicht. Eine Schnittstelle definiert Methoden, die von der Klasse implementiert werden müssen, die sie implementiert. Eine abstrakte Klasse enthält abstrakte Methoden, die von ihren Unterklassen implementiert werden müssen. Polymorphismus wird erreicht, indem ein Array von Objekten erstellt und dieselbe Methode aufgerufen wird, sodass je nach tatsächlichem Elementtyp unterschiedliche Implementierungen aufgerufen werden können. Sie können beispielsweise eine Shape-Schnittstelle definieren, um die Zeichenmethoden der Shape-Klasse zu definieren, dann mehrere Formklassen (z. B. Kreis, Quadrat, Dreieck) mit unterschiedlichen Implementierungen erstellen und Polymorphismus verwenden, um alle Formen über eine Canvas-Klasse zu zeichnen.

Java 中接口和抽象类的多态性应用

Anwendung von Polymorphismus in Schnittstellen und abstrakten Klassen in Java

Polymorphismus ist ein Schlüsselkonzept in der objektorientierten Programmierung (OOP), das es Objekten ermöglicht, auf denselben Methodenaufruf auf unterschiedliche Weise zu reagieren. In Java kann Polymorphismus durch Schnittstellen und abstrakte Klassen erreicht werden.

Schnittstelle

Eine Schnittstelle definiert eine Reihe von Methoden, die von der Klasse implementiert werden müssen, die sie implementiert. Die Schnittstelle selbst enthält keine Implementierung, sie spezifiziert lediglich den Vertrag.

public interface Shape {
    double getArea();
}
Nach dem Login kopieren

Abstrakte Klasse

Eine abstrakte Klasse ist eine Klasse, die mindestens eine abstrakte Methode hat. Abstrakte Methoden werden nicht implementiert und müssen von ihren Unterklassen implementiert werden. Abstrakte Klassen können konkrete Methoden und Felder enthalten.

public abstract class Animal {
    protected String name;
    
    public abstract void makeSound();
}
Nach dem Login kopieren

Polymorphismus

Mithilfe von Schnittstellen und abstrakten Klassen ist es möglich, Arrays von Objekten zu erstellen, in denen jedes Element einen anderen Typ hat. Wenn dieselbe Methode für diese Elemente aufgerufen wird, wird abhängig vom Typ des tatsächlichen Elements eine andere Implementierung aufgerufen.

Shape[] shapes = { new Circle(), new Square(), new Triangle() };
for (Shape shape : shapes) {
    System.out.println("Area: " + shape.getArea());
}
Nach dem Login kopieren

Praktischer Fall

Stellen Sie sich eine Leinwandklasse vor, die verschiedene Formen zeichnen kann. Formen können über die folgende Schnittstelle definiert werden:

public interface Shape {
    void draw();
}
Nach dem Login kopieren

Anschließend können mehrere Formklassen mit unterschiedlichen Zeichenimplementierungen erstellt werden:

public class Circle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a circle"); }
}

public class Square implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a square"); }
}

public class Triangle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a triangle"); }
}
Nach dem Login kopieren

Die Canvas-Klasse kann ein Array von Shape-Objekten akzeptieren und Polymorphismus verwenden, um alle Formen zu zeichnen:

public class Canvas {
    public void drawAll(Shape[] shapes) {
        for (Shape shape : shapes) {
            shape.draw();
        }
    }
}
Nach dem Login kopieren

Über die Schnittstelle und abstrakte Klassen ermöglicht Polymorphismus in Java den dynamischen Aufruf von Methoden basierend auf dem tatsächlichen Typ des Objekts und ermöglicht so skalierbaren und wiederverwendbaren Code.

Das obige ist der detaillierte Inhalt vonPolymorphismusanwendung von Schnittstellen und abstrakten Klassen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage