Polimorfisme berasal dari kata Poly artinya banyak, morfisme artinya bentuk. Polimorfisme adalah sebuah prinsip di mana class dapat memiliki banyak “bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat kita artikan sebagai isinya berbeda, parameternya berbeda, dan tipe datanya berbeda.
Polimorfisme
adalah kemampuan suatu objek untuk mengungkapkan banyak hal melalui satu cara
yang sama. Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah
method general (bersifat umum) untuk semua kelas turunanya, dan selanjutnya
kelas-kelas turunan dapat memperbaharui implementasi dari method tersebut
secara lebih spesifik sesuai dengan karakteristiknya masing-masing.
Polimorfisme pada Java ada dua macam:
1. Static
Polymorphism (Polimorfisme statis).
2. Dynamic
Polymorphism (Polimorfisme dinamis).
Beda dari keduanya terletak pada cara
membuat polimorfismenya.
Polimorfisme statis menggunakan method
overloading, sedangkan polimorfisme dinamis menggunakan method overriding.
Implementasi Polimorfisme :
Overloading
adalah sebuah method yang memiliki nama method yang sama dengan method lain
yang membedakan adalah parameter pada method tersebut dalam satu class.
Perbedaan parameter meliputi jumlah parameter, tipe data parameter, urutan tipe
data parameter.
Implementasi Overloading :
Overriding adalah
sebuah method yang terdapat pada subclass yang nama methodnya sama seperti
method pada superclass.
Syarat :
·
Nama method dan parameter method pada
subclass sama dengan nama method pada superclass.
·
Hak akses pada method overriding tidak
boleh lebih ketat dari method pada
superclass
Implementasi
Overriding :
Perbedaan
Polimorfisme dan Inheritance
·
Inheritance (penurunan sifat / pewarisan bertujuan membentuk obyek baru
yang memiliki sifat sama atau mirip dengan obyek yang sudah ada sebelumnya
(pewarisan).
·
Polimorfisme dapat berarti banyak bentuk, maksudnya yaitu kita dapat
menimpa (override), suatu method, yang berasal dari parent class (super class)
dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
·
Inheritance mengacu pada penggunaan
struktur dan perilaku kelas super dalam subkelas.
·
Polimorfisme mengacu
pada mengubah perilaku kelas
super di subkelas.
·
Inheritance
merupakan kelas mewarisi bidang dan metode dari semua
superclasses, baik langsung atau tidak langsung. Subclass dapat menimpa
metode yang diwarisi, atau dapat menyembunyikan bidang atau metode yang
diwarisi .
·
Sedangkan Polimorfisme mengacu
pada prinsip dalam biologi di mana suatu organisme atau spesies dapat memiliki
berbagai bentuk atau tahapan. Prinsip ini juga dapat diterapkan pada
pemrograman dan bahasa berorientasi objek seperti bahasa Java. Subclass
dari suatu kelas dapat mendefinisikan perilaku unik mereka sendiri dan berbagi
fungsi yang sama dari kelas induknya. polimorfisme tidak
berlaku untuk bidang.
Perbedaan Overloading Dan Overriding
·
Metode overloading adalah polimorfisme
waktu kompilasi. Metode overriding adalah polimorfisme run time.
·
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.
·
Overloading ini terjadi di dalam kelas.
Sementara itu overriding dilakukan dalam dua kelas dengan hubungan warisan.
·
Metode overloading mungkin atau mungkin
tidak memerlukan pewarisan. Sementara metode override selalu membutuhkan
pewarisan.
·
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.
·
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.
Komentar
Posting Komentar