Polimorfisme di Jawa: Cara Membebankan atau Mengatasi Kaedah

Polimorfisme di Jawa: Cara Membebankan atau Mengatasi Kaedah

Kaedah overloading dan overriding adalah dua cara di mana Java menunjukkan polimorfisme. Polimorfisme berasal dari gabungan dua perkataan Yunani: 'poly' yang bermaksud banyak dan 'morph' yang bermaksud bentuk. Oleh itu, polimorfisme membolehkan kaedah mengambil banyak bentuk.





Ikuti panduan ini untuk mengetahui cara membebankan atau mengatasi kaedah di Java.





Apakah Kaedah Membebankan?

'Overloading kaedah' merujuk kepada menentukan kaedah yang berbeza dalam kelas dengan nama yang sama. Kaedah mesti mempunyai tandatangan yang berbeza. Tandatangan kaedah adalah gabungan nama kaedah dan senarai parameter. Itu tidak termasuk jenis pengembalian.





Pengkompilasi mengetahui kaedah mana yang akan digunakan dengan memeriksa jenis, bilangan parameter, dan susunannya.

Berkaitan: Meneroka Warisan dalam Bahasa Pengaturcaraan Java



Beban kaedah menunjukkan polimorfisme masa kompilasi. Polimorfisme masa kompilasi bermaksud bahawa penyusun Java mengikat objek ke fungsinya pada waktu runtime. Penyusun menyemak tandatangan kaedah untuk mencapainya.

Polimorfisme jenis ini juga dikenali sebagai pengikatan statik atau awal.





Lihat contoh kaedah overloading di bawah:

class Arithmetic{
int cube(int x){
return x*x*x;
}
double cube(double x){
return x*x*x;
}
float cube(float x){
return x*x*x;
}
public static void main(String[] args){
Arithmetic myMultiplication = new Arithmetic();
System.out.println('The cube of 5 is ' + myMultiplication.cube(5));
System.out.println('The cube of 5.0 is ' + myMultiplication.cube(5.0));
System.out.println('The cube of 0.5 is ' + myMultiplication.cube(0.5));
}
}

Pengeluaran:





The cube of 5 is 125
The cube of 5.0 is 125.0
The cube of 0.5 is 0.125

Kod di atas menunjukkan bagaimana anda boleh mendapatkan kubus pelbagai jenis ( int , berganda , terapung ) menggunakan kaedah yang sama.

Secara amnya, kaedah overloading digunakan untuk menentukan kaedah yang serupa dengan jenis parameter yang berbeza.

Apakah Kaedah Mengatasi?

Ini merujuk kepada pelaksanaan kaedah yang berbeza dalam subkelas. Kaedah mesti sudah ditentukan di kelas induk.

Kaedah mengatasi (iaitu yang ada di subkelas) mesti mempunyai tandatangan kaedah yang sama seperti yang ada di superclass. Jenis pengembalian kaedah pengganti mungkin sama atau subjenis yang ada di superclass.

Overriding umumnya digunakan untuk memasukkan pelaksanaan tertentu dari perilaku objek dalam subkelas.

class Account{
public void message() {
System.out.println('
Thank you for opening an account with us!');
}
public static void main(String args[]) {
Account myAccount = new Account();
Savings mySavings = new Savings();
FixedDeposit myFixedDepo = new FixedDeposit();
myAccount.message();
mySavings.message();
myFixedDepo.message();
}
}
class Savings extends Account {
public void message() {
System.out.println('
Thank you for opening a Savings account with us!');
}
}
class FixedDeposit extends Account {
public void message() {
System.out.println('
Thank you for opening a Fixed Deposit account with us!');
}
}

Pengeluaran:

Thank you for opening an account with us!
Thank you for opening a Savings account with us!
Thank you for opening a Fixed Deposit account with us!

Contoh di atas menunjukkan bagaimana kaedahnya mesej () ditimpa subkelas Penjimatan dan Deposit tetap . Mesej yang berbeza akan dipaparkan untuk pemegang akaun bank dengan akaun Simpanan dan yang mempunyai akaun Deposit Tetap.

Berkaitan: Apa yang Perlu Anda Ketahui Tentang Menggunakan String di Java

Perlu diperhatikan bahawa kaedah overriding menunjukkan polimorfisme runtime atau penghantaran kaedah dinamik. Ini bermaksud bahawa kaedah yang akan dipanggil diselesaikan pada waktu runtime dan bukannya pada penyusunan.

Untuk mengelakkan kaedah diganti, gunakan kata kunci akhir .

final void message (){
System.out.println('
Thank you for opening an account with us!');
}

Apabila subkelas cuba mengatasinya, kesalahan kompilasi akan berlaku.

Sebaik-baiknya, semua kaedah yang disebut dalam konstruktor semestinya akhir . Ini untuk mengelakkan perubahan yang tidak disengajakan yang mungkin disebabkan oleh subkelas.

Kadang kala, anda mungkin perlu mengakses kaedah yang diganti dalam kaedah pengganti. Anda boleh menggunakan kata kunci super diikuti oleh pengendali titik ( . ) dan nama kaedah dalam kes sedemikian.

Pertimbangkan superclass Haiwan .

class Animal{
public void move() {
System.out.println('
I can move.');
}
}

Di bawah ini adalah subkelas, dipanggil Ikan , yang menimpa bergerak () :

class Fish extends Animal {
public void move() {
System.out.println('
I can swim.');
super.move();
}
public static void main(String args[]){
Fish Tilapia = new Fish();
Tilapia.move();
}
}

Pengeluaran:

bolehkah permainan ps4 dimainkan di ps5
I can swim.
I can move.

Semasa mengesampingkan kaedah, anda juga harus memperhatikan pengubah akses yang digunakan. Pengubah dalam subkelas harus mempunyai tahap penglihatan yang sama atau lebih tinggi daripada pada kelas asas. Sebagai contoh, jika kaedah dalam kelas asas ditakrifkan sebagai dilindungi , maka kaedah mengatasi boleh menjadi dilindungi atau awam .

Kod Ringkas Dengan Polimorfisme

Kaedah overriding dan overloading penting untuk penyederhanaan kod, dan kod sederhana adalah amalan yang baik.

Kenapa? Bayangkan pangkalan kode yang kompleks dengan lebih banyak selok-belok daripada Grand Central Station. Sekarang bayangkan bug yang dahsyat mula menghancurkan kerja keras anda di depan mata anda. Anda perlu mengasingkan sumber jangkitan, dan anda perlu melakukannya dengan cepat.

Nasib baik, anda tidak mempermudah kod anda ... Sekarang anda akan mendapat pelajaran sebenar dalam kriptografi. Menggunakan struktur data yang berkesan dan melakukan apa yang anda boleh untuk memendekkan kod (seperti mengingat KERING) adalah pembelaan terbaik anda terhadap situasi seperti ini.

Seterusnya di senarai pembelajaran Java anda harus berfungsi dengan tatasusunan. Ini adalah struktur data penting yang digunakan untuk menyimpan sekumpulan titik data.

Berkongsi Berkongsi Tweet E-mel Cara Membuat dan Melakukan Operasi pada Array di Java

Belajar Java? Biarkan susunan mengendalikan data anda dengan mudah.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Jawa
  • Tutorial Pengekodan
Mengenai Pengarang Jerome Davidson(22 Artikel Diterbitkan)

Jerome adalah Penulis Kakitangan di MakeUseOf. Dia merangkumi artikel mengenai Pengaturcaraan dan Linux. Dia juga peminat crypto dan selalu mengawasi industri crypto.

Lagi Dari Jerome Davidson

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan