Rumah >Java >javaTutorial >Aplikasi polimorfisme antara muka dan kelas abstrak dalam Java

Aplikasi polimorfisme antara muka dan kelas abstrak dalam Java

PHPz
PHPzasal
2024-05-02 10:33:011202semak imbas

Di Java, polimorfisme dicapai melalui antara muka dan kelas abstrak. Antara muka mentakrifkan kaedah yang mesti dilaksanakan oleh kelas yang melaksanakannya; kelas abstrak mengandungi kaedah abstrak yang mesti dilaksanakan oleh subkelasnya. Polimorfisme dicapai dengan mencipta tatasusunan objek dan memanggil kaedah yang sama, membenarkan pelaksanaan berbeza dipanggil bergantung pada jenis sebenar elemen. Sebagai contoh, anda boleh mentakrifkan antara muka Shape untuk mentakrifkan kaedah lukisan kelas Shape, kemudian buat berbilang kelas bentuk (seperti Bulatan, Segiempat, Segi Tiga) dengan pelaksanaan yang berbeza dan menggunakan polimorfisme untuk melukis semua bentuk melalui kelas kanvas.

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

Aplikasi Polimorfisme dalam Antara Muka dan Kelas Abstrak dalam Java

Polymorphism ialah konsep utama dalam pengaturcaraan berorientasikan objek (OOP) yang membolehkan objek bertindak balas kepada panggilan kaedah yang sama dengan cara yang berbeza. Di Jawa, polimorfisme boleh dicapai melalui antara muka dan kelas abstrak.

Antaramuka

Antara muka mentakrifkan satu set kaedah yang mesti dilaksanakan oleh kelas yang melaksanakannya. Antara muka itu sendiri tidak mengandungi sebarang pelaksanaan, ia hanya menentukan kontrak.

public interface Shape {
    double getArea();
}

Kelas Abstrak

Kelas abstrak ialah kelas yang mempunyai sekurang-kurangnya satu kaedah abstrak. Kaedah abstrak tidak dilaksanakan dan mesti dilaksanakan oleh subkelas mereka. Kelas abstrak boleh mengandungi kaedah dan medan konkrit.

public abstract class Animal {
    protected String name;
    
    public abstract void makeSound();
}

Polymorphism

Menggunakan antara muka dan kelas abstrak, adalah mungkin untuk mencipta tatasusunan objek di mana setiap elemen mempunyai jenis yang berbeza. Apabila kaedah yang sama pada elemen ini dipanggil, pelaksanaan yang berbeza dipanggil bergantung pada jenis elemen sebenar.

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

Kes praktikal

Pertimbangkan kelas kanvas yang boleh melukis bentuk yang berbeza. Bentuk boleh ditakrifkan menggunakan antara muka berikut:

public interface Shape {
    void draw();
}

Kemudian, berbilang kelas bentuk dengan pelaksanaan lukisan berbeza boleh dibuat:

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"); }
}

Kelas kanvas boleh menerima tatasusunan objek Bentuk, menggunakan polimorfisme untuk melukis semua bentuk:

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

Melalui antara muka dan Kelas Abstrak, Polimorfisme dalam Java membenarkan kaedah dipanggil secara dinamik berdasarkan jenis objek sebenar, sekali gus membolehkan kod berskala dan boleh digunakan semula.

Atas ialah kandungan terperinci Aplikasi polimorfisme antara muka dan kelas abstrak dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel berkaitan

Lihat lagi