Rumah > Java > javaTutorial > Overloading vs. Overriding: Bagaimanakah Polimorfisme Berkaitan dengan Kedua-duanya di Jawa?

Overloading vs. Overriding: Bagaimanakah Polimorfisme Berkaitan dengan Kedua-duanya di Jawa?

Barbara Streisand
Lepaskan: 2024-12-21 00:38:09
asal
675 orang telah melayarinya

Overloading vs. Overriding: How Does Polymorphism Relate to Both in Java?

Memahami Polimorfisme, Overriding dan Overloading dalam Java

Apabila membincangkan polimorfisme dalam Java, adalah penting untuk membezakan antara beban lampau dan overriding. Lebihan beban melibatkan penentuan berbilang kaedah dengan nama yang sama tetapi parameter yang berbeza, manakala penggantian berlaku apabila subkelas melaksanakan kaedah daripada kelas supernya.

Mengenai persoalan mengklasifikasikan polimorfisme sebagai beban lampau atau mengatasi, kedua-duanya tidak betul sepenuhnya. Polimorfisme menggabungkan kedua-dua konsep.

Kelas Asas Abstrak dan Penggantian

Polymorfisme ditunjukkan dengan terbaik melalui kelas asas abstrak, yang mengisytiharkan kaedah tanpa melaksanakannya. Subkelas kemudian mentakrifkan kaedah ini khusus untuk warisan mereka. Proses ini dianggap mengatasi, kerana subkelas menyediakan pelaksanaannya sendiri untuk kaedah yang diwarisi.

Sebagai contoh, pertimbangkan kelas asas abstrak Manusia dengan kaedah abstrak goPee(), mewakili manusia generik yang pergi ke bilik air. Subkelas Lelaki dan Perempuan mengatasi kaedah ini dengan pelaksanaan khusus:

public abstract class Human {
    public abstract void goPee();
}

public class Male extends Human {
    @Override
    public void goPee() {
        System.out.println("Stand Up");
    }
}

public class Female extends Human {
    @Override
    public void goPee() {
        System.out.println("Sit Down");
    }
}
Salin selepas log masuk

Dengan mencipta ArrayList yang mengandungi contoh Manusia, kita boleh gunakan kaedah goPee() secara polimorf, terhasil dalam output yang berbeza berdasarkan subkelas tertentu:

ArrayList<Human> group = new ArrayList<>();
group.add(new Male());
group.add(new Female());

for (Human person : group) person.goPee();
Salin selepas log masuk

Ini menggambarkan kepelbagaian polimorfisme dalam membolehkan penggunaan kaedah biasa merentas objek yang berbeza, walaupun pelaksanaannya yang khusus.

Atas ialah kandungan terperinci Overloading vs. Overriding: Bagaimanakah Polimorfisme Berkaitan dengan Kedua-duanya di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan