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 : 


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 :





  • 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

Postingan populer dari blog ini

Extreme Programming (XP)

Tugas Pertemuan 13 Bahasa Indonesia

Tugas Enkapsulasi