Polimorfisme, Overloading dan Overriding
Polimorfise dan Overriding
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 Polimorfise :
- Output :
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 :
- Output :
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 :
- Output :
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.
Nama : Irham Iswanda Duhair
NPM : 19316018
Kelas : TK 19 A
Komentar
Posting Komentar