Rumah > Java > javaTutorial > Bagaimanakah Java Mencapai Polimorfisme dengan Kedua-dua Mekanisme Statik dan Dinamik?

Bagaimanakah Java Mencapai Polimorfisme dengan Kedua-dua Mekanisme Statik dan Dinamik?

Mary-Kate Olsen
Lepaskan: 2024-10-30 01:12:28
asal
626 orang telah melayarinya

How Does Java Achieve Polymorphism with Both Static and Dynamic Mechanisms?

Polymorphism in Java: A Comprehensive Guide

Dalam pengaturcaraan berorientasikan objek, polimorfisme membenarkan objek daripada kelas yang berbeza untuk dianggap sebagai objek sesuatu superclass biasa. Java menyokong polimorfisme melalui dua mekanisme utama: polimorfisme statik dan polimorfisme dinamik.

Polymorfisme Statik

Polymorfisme statik, juga dikenali sebagai beban berlebihan kaedah, berlaku apabila dua atau lebih kaedah dalam kelas yang sama mempunyai nama yang sama tetapi senarai parameter yang berbeza. Semasa penyusunan, pengkompil menentukan kaedah yang hendak digunakan berdasarkan bilangan dan jenis hujah yang diluluskan.

Contoh:

<code class="java">class Calculation {
  void sum(int a, int b) {}
  void sum(int a, int b, int c) {}
}

// Main method
Calculation obj = new Calculation();
obj.sum(10, 10, 10); // 30
obj.sum(20, 20); // 40</code>
Salin selepas log masuk

Dalam contoh ini, kaedah jumlah berlebihan dengan dua senarai parameter yang berbeza. Apabila kaedah dipanggil dengan tiga argumen, pengkompil memilih kaedah jumlah dengan tiga parameter. Sebaliknya, apabila kaedah dipanggil dengan dua argumen, pengkompil memilih kaedah jumlah dengan dua parameter.

Polymorphism Dinamik

Polymorphism dinamik, juga dikenali sebagai kaedah overriding, berlaku apabila dua atau lebih kaedah dalam kelas yang berbeza mempunyai nama dan tandatangan yang sama. Semasa masa jalan, mesin maya menentukan kaedah yang hendak digunakan berdasarkan jenis masa jalan objek.

Contoh:

<code class="java">class Animal {
  public void move() {}
}

class Dog extends Animal {
  public void move() {}
}

// Main method
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object

a.move(); // "Animals can move"
b.move(); // "Dogs can walk and run"</code>
Salin selepas log masuk

Dalam contoh ini, kaedah bergerak ditindih dalam kelas Anjing. Apabila kaedah pergerakan dipanggil pada rujukan Haiwan a, pelaksanaan pergerakan Haiwan akan digunakan. Walau bagaimanapun, apabila kaedah perpindahan dipanggil pada rujukan Anjing b, perlaksanaan langkah Anjing digunakan, menunjukkan polimorfisme dinamik.

Atas ialah kandungan terperinci Bagaimanakah Java Mencapai Polimorfisme dengan Kedua-dua Mekanisme Statik dan Dinamik?. 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