iklan

Labels

Thursday, December 5, 2019

Memahami Polymorphism



Konsep Polimorfisme (Polymorphism)

   Polymorphism merupakan salah satu konsep penting dalam object oriented programming (OOP) khususnya di bahasa pemrograman Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk. Ada beberapa definisi berbeda tentang polymorphism yang berkaitan dengan pemrograman berorientasi obyek.


contoh code :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Nama file : Polimorphism.java
// Contoh penerapan konsep polimorphism
public class Polimorphism {
   public static void main(String[ ] args) {
      cetakObyek(new Balok());
      cetakObyek(new PersegiPanjang());
      cetakObyek(new BangunDatar());
      cetakObyek(new Object());
   }
    
   public static void cetakObyek(Object obyek) {
      System.out.println(obyek);
   }
} // Akhir kelas Polimorphism
class Balok extends PersegiPanjang {
   public String toString() {
      return "Mempunyai sisi panjang, lebar dan tinggi";
   }
}
class PersegiPanjang extends BangunDatar {
   public String toString() {
      return "Mempunyai sisi panjang dan lebar";
   }
}
class BangunDatar extends Object {
   public String toString() {
      return "Mempunyai berbagai bentuk";
   }
}
Penjelasan :



  Baris nomor 14 -16 adalah deklarasi metoda cetakObyek yang mempunyai satu parameter dengan tipe kelas Object. Kelas Object merupakan akar dari semua kelas di Java. Langsung maupun tidak langsung, semua kelas di Java merupakan turunan dari kelas Object. Anda dapat memanggil atau menggunakan metoda cetakObyek dengan argumen berupa obyek yang dibuat dari kelas turunan superclass Object.

  Ketika metoda cetakObyek dipanggil (baris nomor 8 – 11), argumen obyek akan diminta. obyek yang berfungsi sebagai argumen metoda dapat berupa obyek yang merupakan kelas turunan dari kelas Object yaitu kelas BangunDatar, kelas PersegiPanjang maupun kelas Balok. Masing-masing kelas turunan mendeklarasikan ulang metoda toString yang mempunyai implementasi berbeda. Java Virtual Machine (JVM) akan menentukan secara dinamis implementasi metode toString yang digunakan saat program dijalankan. Kemampuan menentukan secara dinamis ini disebut dengan dynamic binding.

 Dari gambaran program di atas, apabila argumen parameter sebuah metoda adalah tipe superclass, maka argumen metoda yang diberikan dapat berupa tipe dari subclass-nya. Kemampuan seperti inilah yang dimaksud dengan polymorphism. Dari gambaran tersebut, dapat didefinisikan kembali bahwa polymorphism adalah kemampuan untuk menghasilkan sesuatu yang berbeda dengan cara yang sama. Pemberian obyek dari subclass ke obyek dari superclass dapat dilakukan tanpa perlu melakukan konversi.

Related Posts:

  • STRUKTUR DAN FUNGSI KOMPOEN PENYUSUN KOMPUTER Pengertian Komputer Kata komputer berasal dari bahasa Latin yaitu Computare yang artinya menghitung. Dalam bahasa Inggris disebut to compute. Secara definisi komputer diterjemahkan sebagai sekumpulan alat elektro… Read More
  • CYBER MAFIA ID hallo sobat GeovanaTech  apa kabar?,pastinya sehat donk hehehe, kali ini GeovanaTech akan share lagi nih game terbaru buatan anak indonesia , itu adalah game CYBER MAFIA ID game ini adalah game versi Android l… Read More
  • Pengertian SSD Pengertian SSD adalah media penyimpanan data (non volatile memory) yang menggunakan papan memory sebagai media dan tidak menggunakan compact-disk seperti hard-disk konvensional sehingga SSD tidak memilki penundaan m… Read More
  • Cara memasang jam di BLOGhallo sobat  GeovanaTech kali ini saya akan share cara memasang jam di blog sobat,Memasang jam di blog sebenarnya memiliki fungsi untuk melengkapi,mempercantik,serta memperunik sebuah blog yang kita miliki.dengan adanya … Read More
  • Review Soundcloud Android , Apakah lebih baik dari yang lain ?    Baiklah kali ini GeovanaTech akan mereview salah satu aplikasi produktifitas dan juga jejaring sosial yang berbasis audio atau music , Aplikasi semacam ini  dapat membantu musisi dan content creator untuk m… Read More

0 comments:

Post a Comment