Rumah >Java >javaTutorial >Apakah perbezaan antara polimorfisme dinamik dan statik di Jawa?
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>
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>
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!