Konsep override dan overload pada OOP Java

Dalam konsep pemrograman berbasis objek (OOP) terdapat dua konsep hal penting yaitu override dan overload. Konsep ini berkaitan dengan kedinamisan suatu method. Pada postingan kali ini kita akan membahas mengenai 2 konsep hal ini.

Override

Konsep override atau dikenal sebagai dynamic polymorph adalah kondisi dimana suatu method sub-class terhadap super-class memenuhi syarat-syarat berikut :
  • Nama method haruslah sama.
  • Argument / parameter haruslah sama.
  • Tipe kembalian haruslah sama.

Penggunaan override bisa membantu penyesuaian isi suatu fungsi jika diperlukan tanpa perlu mengubah nama, parameter, dan kembalian method. Hal ini bisa membantu method pada sub class menjadi lebih kaya akan informasi. Sebagai contoh pada super-class Kendaraan dan sub-class Mobil terdapat method getInformasi. Berikut contoh codenya :


Maka Hasil dari code tersebut akan seperti berikut:

terlihat bahwa sub-class Mobil menjalankan isi dari fungsi yang di dalam kelas itu sendiri. Walaupun method yang sama terdapat pada super-class Kendaraan.

Overload

Static polymorph atau overload merupakan kondisi dimana terdapat lebih dari 1 method yang memiliki nama yang sama. Pada bahasa pemrograman Java ketentuan dalam overloading suatu method adalah sebagai berikut : 

  • Nama method haruslah sama.
  • Argument / parameter haruslah berbeda.
  • Tipe kembalian haruslah sama.

Penggunaan konsep ini berguna untuk melakukan if conditional pada tingkatan fungsi. Sebagai contoh apabila suatu fungsi membutuhkan parameter ada juga yang tidak membutuhkan parameter tetapi namanya tetap sama. Umumnya method ini sangat berguna untuk method constructor pada suatu Class. Berikut contoh source codenya:

 

Hasilnya

Dari hasil tersebut bisa dilihat bahwa fungsi getInformasi terdiri dari 2 jenis yaitu tanpa parameter dan dengan parameter (String tambahanInfo).


Sekian semoga bermanfaat jika ada pertanyaan silahkan tulis di kolom komentar. Terimakasih

Posting Komentar untuk "Konsep override dan overload pada OOP Java"