Langsung ke konten utama

Polimorfisme, Overloading 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 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.

 

Nama    : Yohanes Bosco Chrisro Setya Atmaka

NPM    : 19316049

Kelas    : TK 19 C

Komentar

Postingan populer dari blog ini

Sketsa Konseptual Automatic Teller Machine (ATM)

U niversitas Teknokrat Indonesia Website UTI :    https://teknokrat.ac.id/   Website FTIK :   https://ftik.teknokrat.ac.id/ Nama     :  Yohanes Bosco Christo Setya Atmaka NPM       :  19316049 Kelas      :  TK 20 A      Disini saya akan menjelaskan tentang sketsa konseptual dari sebuah Automatic Teller Machine (ATM). Automatic Teller Machine (ATM)        A TM adalah singkatan dari Anjungan Tunai Mandiri atau Automatic Teller Machine adalah sebuah alat elektronik yang mengijinkan nasabah bank untuk mengambil uang dan mengecek rekening tabungan mereka tanpa perlu dilayani oleh seorang "teller" manusia.      Mesin ini sering dikunjungi untuk melakukan transaksi perbankan secara mandiri, mulai dari transfer hingga tarik tunai.      ATM hadir sebagai fasilitas yang disediakan bank untuk memudahkan transaksi setiap nasabah karena tidak perlu selalu da...

LAPORAN KEGIATAN JALAN SEHAT UTI

LAPORAN KEGIATAN JALAN SEHAT UNIVERSITAS TEKNOKRAT INDONESIA           “SEMANGAT SEHAT”           UNIVERSITAS TEKNOKRAT INDONESIA BANDAR LAMPUNG LAMPUNG 2021   LAPORAN KEGIATAN JALAN SEHAT UNIVERSITAS TEKNOKRAT INDONESIA   A.   LATAR BELAKANG Kesehatan merupakan sesuatu yang sangat berharga dan mahal harganya. Tiada insan yang rela apabila kesehatannya dibeli oleh orang lain. Hidup sehat membuat siapapun dapat mempermudah aktivitas yang dilakukannya. Ada banyak hal yang dapat dilakukan agar hidup sehat tanpa harus mengeluarkan keringat yang banyak, salah satunya dengan mengikuti jalan sehat. Jalan sehat merupakan  salah satu  olahraga yang murah dan terjangkau  serta  memberikan banyak manfaat, terutama kesehatan. Kemasan kegiatan  yang  membawa nuansa sederhana  dengan  ramai peserta  membuat kegiatan ini semakin meriah. Dan j...

ALGORITMA BRANCH AND BOUND

  ALGORITMA BRANCH AND BOUND Algoritma Branch and Bound adalah metode algoritma umum untuk mencari solusi optimal dari dari berbagai permasalahan optimasi, terutama untuk optimasi diskrit dan kombinatorial. Sebagaimana pada algoritma runut-balik, algoritma Branch and Bound juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Ruang solusi diorganisasikan ke dalam pohon ruang status. Yang membedakan keduanya adalah bila pada algoritma runut-balik, ruang solusi dibangun secara dinamis berdasarkan skema DFS (Depth First Search), maka pada algoritma Branch and Bound ruang solusi dibangun dengan skema BFS (Breadth First Search). Pada algoritma ini, permasalahan dibagi bagi menjadi subregion subregion yang mungkin mengarah ke solusi. Inilah yang disebut dengan branching, mengingat prosedur ini akan dilakukan berulang ulang secara rekursif untuk setiap subregion dan setiap subregion yang dihasilkan akan membentuk sebuah struktur pohon yang disebut sebagai pohon pencar...