Polymorphism di Pemrograman Java Sebagai Teknik Pengelolaan Kompleksitas

java Polymorphism

Dalam kamus pemrograman polymorphism mengacu pada prinsip dalam biologi di mana suatu organisme atau spesies dapat memiliki banyak bentuk atau tahapan yang berbeda. Prinsip ini juga dapat diterapkan untuk pemrograman dan bahasa seperti bahasa Java berorientasi objek. Subclass kelas dapat menentukan perilaku mereka sendiri yang unik dan belum berbagi beberapa fungsi yang sama dari kelas induk.

Polymorphism dapat ditunjukkan dengan modifikasi kecil untuk kelas Sepeda. Misalnya, metode printDescription dapat ditambahkan ke kelas yang menampilkan semua data yang tersimpan saat ini dalam sebuah contoh.

public void printDescription(){
    System.out.println("\nSepeda is " + "in gear " + this.gear
        + " with a gowes of " + this.gowes +
        " and travelling at a kecepatan of " + this.kecepatan + ". ");
}

Untuk menunjukkan fitur polymorphic dalam bahasa Java, memperpanjang kelas sepeda dengan SepedaGunung dan kelas sepedabmx. Untuk SepedaGunung, menambahkan lapangan untuk suspensi, yang merupakan nilai String yang menunjukkan jika sepeda memiliki shock absorber depan, depan. Atau, sepeda memiliki shock absorber depan dan belakang, Ganda.

Dapat diperbarui dalam sebuah class:

public class SepedaGunung extends Sepeda {
private String suspension;public SepedaGunung(
int startGowes,
int startKecepatan,
int startGear,
String suspensionType){
super(startGowes,
startSpeed,
startGear);
this.setSuspension(suspensionType);
}

public String getSuspension(){
return this.suspension;
}

public void setSuspension(String suspensionType) {
this.suspension = suspensionType;
}

public void printDescription() {
super.printDescription();
System.out.println("The " + "SepedaGunung has a" +
getSuspension() + " suspension.");
}
}

Penerapan polymorphism dapat bermacam variasi, polymorphism dapat berupa total Polymorphism atau partial Polymorphism, serta dapat berupa typed polymorphism atau untyped Polymorphism. Kombinasi membentuk emat jenis polymorphism

  1. Total polymorphism
  2. Partial polymorphism
  3. Typed polymorphism
  4. Untyped polymorphism

Penerapa polymorphism total yang baik adalah mengikuti prinsip prinsip subsitusi yang dikemukakan oleh liskov. Polymorphism memungkinkan kita mengangap sekelompok objek dengan tipe-tipe berbeda seperti yang dimiliki oleh sipe yang sama

Polymorphism merupakan konsep pokok di dalam perancangan orientasi objek. Polymorphism berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek objek itu mempunyai antarmuka-antarmuka yang identik namun mempunyai perilaku-perilaku berbeda. Polymorphism berupa satu nama tunggal (seperti deklarasi fungsi) dan dapat menyatakan objek objek kelas-kelas berbeda yang terhubung dengan suatu superkelas yang common diantara kelas-kelas itu. Sembarang objek yang ditandai dengan nama ini akan menanggapi sekumpulan operasi yang common

Polymorphism merupakan fitur yang ada karena interaksi konsep pewarisan dan dynamic binding. polymorphism merupakan fitur penting dan ampuh bahasa pemrograman orientasi objek. Kepentingannya merupakan peringkat kedua setelah dukungan terhadap abstraksi orientasi objek. Fitur ini merupakan pembeda orientasi objek dari bahasa tradisional yang hanya pada tipe data abstrak. Bahasa yang tidak mendukung polymorphism belum layak di sebut bahasa pemrograman orientasi objek, paing paling bahasa disebut bahasa berbasis objek bila telah mendukung pengapsulan

Polymorphism memungkinkan kita mengenali dan mengeksploitasi keserupaan-keserupaan diantara kelas-kelas berbeda. Ketika kita mengenali bahwa jenis objek dapat menanggapi pesan yang sama. Kita mengenali tidak adanya pembeda antara nama pesan dan metode. Objek pengirim pesan, jika penerima mengimplementasikan metode dengan penanda sama maka objek itu akan memberi tanggapan khas. Tanggapan-tanggapan berbeda dimungkinkan, metode yang berbeda dari instant kelas-kelas berbeda. Pengiriman cukup mengirim pesan, tidak perlu dengan kelas dari objek penerima.

Postingan Terkait :

Leave a Reply

Your email address will not be published. Required fields are marked *