1. Pengertian
dari polimorfisme, overloading, dan overriding
- Polimorfisme
Polimorfisme (polymorpishm) berarti banyak
bentuk. Dalam pemrograman berorientasi obyek, digunakan untuk memerintah obyek agar
melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara
proses berbeda.
- Overloading
Overloading
adalah suatu keadaan dimana beberapa method memiliki nama yang sama namun mempunyai
fungsionalitas yang berbeda. Tujuannya untuk memudahkan penggunaan/pemanggilan
method dengan fungsional yang mirip. Dalam pendeklarasian overloading aturan
yang digunakan yaitu nama method harus sama, daftar parameter harus berbeda,
dan return type boleh sama, juga boleh berbeda.
- Overriding
Overriding adalah
suatu keadaan subclass memodifikasi tingkah laku yang diwarisi dari super class. Tujuannya untuk menspesifikan
tingkah laku dari subclass tersebut. Overriding dilakukan dengan cara
mendeklarasikan kembali method milik super class di dalam subclass. Deklarasi method
pada subclass harus sama dengan yang terdapat pada di super class, yaitu
kesamaan pada nama, return type, dan daftar parameter (jumlah, tipe, urutan).
2. Perbedaan
antara polimorfisme dengan inheritance
Inheritance
adalah penurunan sifat dalam bahasa pemrograman Java yang satu dalam Pilar
Dasar OOP (Object Oriented Programing), yang dalam implementasinya merupakan
sebuah hubungan ”adalah bagian dari” istilah asingnya ”is a relationship” objek
yang di inherit (diturunkan). Inheritance diperlukan untuk menghindari
duplikasi objek baik itu field, variable maupun methode yang sebenarnya
merupakan objek yang bisa diturunkan dari hanya sebuah class. Jadi Inheritance
bukan sebuah Class yg di inherit oleh sebuah Literal, tetapi lebih menunjukkan
ke hubungan objek itu sendiri.
Sedangkan Polimorfisme adalah suatu kemampuan dari
sebuah objek untuk membolehkan mengambil beberapa bentuk yang berbeda agar
tidak terjadi duplikasi objek.
Antara
Penurunan Sifat (Inheritance) maupun Polimorfisme merupakan konsep yang
memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar
melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara
proses berbeda. Perbedaan antara Polimorfisme dan Inheritance yaitu
Polimorfisme mengacu pada mengubah perilaku class super di subclass. Sedangkan
Inheritance mengacu pada penggunaan struktur dan perilaku class super dalan
subclass.
3. Perbedaan antara overloading dan overriding
Method
overloading artinya method dengan nama yang sama, namun memiliki parameter yang
berbeda, dan method ini berada dalam sebuah class yang sama atau bisa juga
berada dalam class yang lain yang terkait dalam hirarki inheritance.
Method
overriding artinya memberikan implementasi yang baru dari suatu method pada
subclass, jadi method ini berada pada class yang berbeda yang terkait dalam
inheritance.
Diantara kedua method tersebut terdapat beberapa perbedaan
penting yang perlu diketahui, diantaranya adalah:
1) Dalam method overloading, jumlah dan tipe parameter (termasuk urutannya) atau disebut dengan istilah method signature mengalami perubahan, sedangkan pada method overriding tidak berubah atau tetap.
2) Method overloading dapat dilakukan pada class yang sama, namun overriding hanya dapat dilakukan pada subclass dengan signature yang sama dan tipe return yang sama. Sedangkan pada overloading, tipe return ini bisa sama atau berbeda.
3) Method private, final atau static tidak bisa di overrride, namun method tersebut bisa overloading. Artinya suatu class dapat memiliki lebih dari satu method private, final atau static dengan nama yang sama, namun sub class tidak dapat meng-override private, final atau static method tersebut dari super class.
4) Method overloading pada Java terikat oleh static binding sedangkan method overriding merupakan subjek dari dynamic binding.
5) Metode overloading adalah polimorfisme waktu kompilasi. Metode overriding adalah polimorfisme run time.
6) Overloading Ini membantu meningkatkan keterbacaan program. Sementara itu overriding digunakan untuk memberikan implementasi spesifik pada metode yang sudah tersedia oleh class induknya atau kelas super.
7) Overloading ini terjadi di dalam kelas. Sementara itu overriding dilakukan dalam dua kelas dengan hubungan warisan.
8) Metode overloading mungkin atau mungkin tidak memerlukan pewarisan. Sementara metode override selalu membutuhkan pewarisan.
9) Dalam hal ini, metode overloading harus memiliki nama sama dan class yang berbeda. Sementara dalam hal ini, metode overriding harus memiliki nama dan class yang sama.
10) Dalam metode overloading, tipe pengembalian bisa atau tidak bisa sama, tetapi kita harus mengubah parameter. Sementara dalam overriding, tipe pengembalian harus sama atau ko-varian.
§ Nama Mahasiswa : NADIYA SAFITRI
§ NPM : 19316014
§ Kelas : Tk19B
Tidak ada komentar:
Posting Komentar