Rumah > Java > javaTutorial > teks badan

Apakah perbezaan antara polimorfisme dinamik dan statik di Jawa?

Mary-Kate Olsen
Lepaskan: 2024-10-30 11:15:20
asal
748 orang telah melayarinya

What is the difference between dynamic and static polymorphism in Java?

Memahami Polimorfisme Dinamik dan Statik dalam Java

Polymorphism dalam Java membenarkan objek dari kelas yang berbeza untuk berkelakuan dengan cara yang sama, walaupun berbeza. Fleksibiliti ini dicapai melalui dua jenis polimorfisme: dinamik dan statik.

Polymorfisme Dinamik
Juga dikenali sebagai polimorfisme masa jalan, polimorfisme dinamik berlaku apabila kaedah menimpa dalam subkelas berlaku. Panggilan kepada kaedah mengatasi diselesaikan pada masa jalan berdasarkan jenis objek sebenar.

Pertimbangkan contoh berikut:

<code class="java">class Animal {
    public void move() {
        System.out.println("Animals can move");
    }
}

class Dog extends Animal {
    @Override
    public void move() {
        System.out.println("Dogs can walk and run");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal(); // Animal reference and object
        Animal dog = new Dog(); // Animal reference but Dog object

        animal.move(); // Output: Animals can move
        dog.move(); // Output: Dogs can walk and run
    }
}</code>
Salin selepas log masuk

Dalam contoh ini, kaedah move() ditindih dalam Kelas anjing. Apabila rujukan haiwan memanggil kaedah move(), jenis sebenar objek (Haiwan atau Anjing) menentukan tingkah laku semasa masa jalanan. Ini ialah polimorfisme dinamik.

Polymorfisme Statik (Pemuatan Terlebih Kaedah)
Polymorfisme statik, juga dipanggil polimorfisme masa kompilasi, berlaku apabila berbilang kaedah dengan nama yang sama tetapi senarai parameter yang berbeza wujud dalam kelas yang sama. Panggilan kepada kaedah yang betul ditentukan pada masa penyusunan berdasarkan bilangan dan jenis hujah yang diluluskan.

Pertimbangkan contoh berikut:

<code class="java">class Calculation {
    void sum(int a, int b) {
        System.out.println(a + b);
    }

    void sum(int a, int b, int c) {
        System.out.println(a + b + c);
    }

    public static void main(String[] args) {
        Calculation calculation = new Calculation();
        calculation.sum(10, 10, 10); // Output: 30
        calculation.sum(20, 20); // Output: 40
    }
}</code>
Salin selepas log masuk

Dalam contoh ini, jumlah() kaedah terlebih beban dengan senarai parameter yang berbeza. Panggilan kepada kaedah jumlah() yang betul ditentukan pada masa penyusunan berdasarkan bilangan hujah yang diluluskan. Ini ialah polimorfisme statik atau kaedah terlebih beban.

Atas ialah kandungan terperinci Apakah perbezaan antara polimorfisme dinamik dan statik 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!