Jenis Polimorfisme di Jawa [Polimorfisme Statis & Dinamis dengan Contoh]

Diterbitkan: 2021-06-18

Daftar isi

Apa itu Polimorfisme di Jawa?

Salah satu konsep penting dalam Object Oriented Programming (OOP) adalah polimorfisme yang berarti bahwa satu tindakan dapat dilakukan dengan cara yang berbeda. Ini berasal dari kata Yunani: poli dan morphs yang berarti banyak dan bentuk. Bentuk-bentuk yang berbeda ada ketika mereka terkait melalui pewarisan.

Seperti pewarisan yang mewarisi metode dan atribut dari kelas yang berbeda, polimorfisme menerapkan metode tersebut dan melakukan tugas yang berbeda. Sebuah objek mampu membentuk dirinya menjadi berbagai bentuk melalui polimorfisme.

Artinya, entitas dapat melakukan operasi yang berbeda dalam skenario yang berbeda. Salah satu penggunaan polimorfisme yang paling umum dalam Pemrograman Berorientasi Objek adalah ketika referensi kelas induk digunakan untuk merujuk ke objek kelas anak. Baca lebih lanjut tentang berbagai konsep dan contoh OOP.

Polimorfisme di Jawa dapat dicapai melalui tiga metode:

Metode Overriding: Jika superclass dan subclass terdiri dari metode yang sama, maka metode overriding mengacu pada proses override metode di superclass dengan metode di subclass. Akibatnya, metode yang sama akan digunakan dalam kondisi yang berbeda untuk melakukan operasi yang berbeda.

Keluaran dari program:

Bahasa Pemrograman Java

Bahasa Inggris Umum

  1. Metode Overloading: Metode overloading mengacu pada proses pembuatan metode dengan nama yang sama tetapi dengan parameter yang berbeda. Contohnya meliputi: void func() { … }, void func(int a) { … }, float func(double a) { … }, float func(int a, float b) { … }.

Keluaran

**********

##########

  1. Overload operator: Operator overloading adalah konsep di Java di mana operator berperilaku berbeda dengan operan yang berbeda. Contohnya meliputi:
  • Operator "+" dapat digunakan baik dalam penambahan numerik dan penggabungan string.
Penambahan numerik Penggabungan string
int = 5;

int b = 6;

int jumlah = a + b; // Keluaran = 11

String dulu = “Python”;

String kedua = “Pemrograman”;

nama = pertama + kedua; // Keluaran = Pemrograman Python

  • Operator &,|, dan ! dapat digunakan untuk overloading logis dan bitwise.

Jenis Polimorfisme di Jawa

Pemrograman Berorientasi Objek berfokus pada empat konsep dasar yaitu abstraksi, enkapsulasi, pewarisan, dan polimorfisme. Polimorfisme adalah kemampuan untuk memproses objek secara berbeda berdasarkan kelas dan tipe datanya.

Ada dua jenis polimorfisme di Jawa : polimorfisme waktu kompilasi dan polimorfisme run time di Jawa . Polimorfisme java ini disebut juga dengan polimorfisme statis dan polimorfisme dinamis.

1. Polimorfisme statis (atau polimorfisme waktu kompilasi)

Seperti kebanyakan bahasa pemrograman OOP lainnya, polimorfisme Java memungkinkan penggabungan beberapa metode dalam suatu kelas. Metode menggunakan nama yang sama tetapi parameternya bervariasi. Ini mewakili polimorfisme statis. Polimorfisme ini diselesaikan selama waktu kompiler dan dicapai melalui metode overloading. Tiga kriteria disediakan di mana set parameter harus berbeda:

  • Jumlah parameter harus bervariasi.
  • Jenis parameter harus berbeda.
  • Urutan parameter yang berbeda. Misalnya, jika suatu metode menerima string dan long, sedangkan metode lainnya menerima string dan long. Namun, jenis pesanan ini menyulitkan API untuk memahaminya.

Karena perbedaan parameter, setiap metode memiliki tanda tangan yang berbeda. Kompiler Java memiliki gagasan tentang metode mana yang dipanggil.

Pelajari Kursus Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Contoh polimorfisme statis

Salah satu cara Java mendukung polimorfisme statis adalah metode overloading. Contoh yang menunjukkan kasus metode overloading dalam polimorfisme statis ditunjukkan di bawah ini:

Contoh:

kelas SimpleCalculator

{

int tambah(int a, int b)

{

kembali a+b;

}

int tambah(int a, int b, int c)

{

kembali a+b+c;

}

}

Demo kelas publik

{

public static void main(String args[])

{

SimpleCalculator obj = new SimpleCalculator();

System.out.println(obj.add(25, 25));

System.out.println(obj.add(25, 25, 30));

}

}

Keluaran dari program

50

80

2. Polimorfisme Dinamis (atau polimorfisme run time di Java)

Dalam bentuk polimorfisme di java , compiler tidak menentukan metode yang akan dieksekusi. Ini adalah Java Virtual Machine (JVM) yang melakukan proses pada saat run time. Polimorfisme dinamis mengacu pada proses ketika panggilan ke proses yang ditimpa diselesaikan pada waktu proses. Variabel referensi dari superclass memanggil metode yang diganti. Metode yang diimplementasikan oleh subclass dan superclass menyediakan fungsionalitas yang berbeda sambil berbagi nama yang sama.

Memahami proses Upcasting sangat penting sebelum memahami konsep polimorfisme run time. Upcasting mengacu pada proses di mana objek dari kelas anak dirujuk oleh variabel referensi dari superclass. Pelajari tentang polimorfisme di PHP.

Contoh Polimorfisme Dinamis (atau run time)

Contoh 1:

Dua kelas Bike dan Splendor dibuat dan kelas Splendor memperluas kelas Bike menggantikan metode run() nya. Metode run() dipanggil oleh variabel referensi dari kelas induk. Karena metode subkelas menggantikan metode kelas induk; metode subclass dipanggil pada saat run time.

Program

kelas Sepeda{

void run(){System.out.println("berjalan");}

}

kelas Splendor memperluas Sepeda{

void run(){System.out.println("berjalan dengan aman sejauh 30km");}

publik statis void main(String args[]){

Sepeda b = Splendor baru ();//upcasting

b.jalan();

}

}

Output: berjalan dengan aman dengan 60km

Contoh 2

Dua kelas dengan nama "ABC" dan "XYZ" dibuat di mana XYZ adalah kelas anak dan ABC adalah kelas induk. Di sini, metode myMethod() dari kelas induk ditimpa oleh kelas anak. Objek kelas anak ditetapkan ke referensi kelas induk.

Program:

kelas ABC{

public void myMethod(){

System.out.println("Metode yang Diganti");

}

}

kelas publik XYZ memperluas ABC{

public void myMethod(){

System.out.println("Metode Penggantian");

}

public static void main(String args[]){

ABC obj = XYZ baru();

obj.metodesaya();

}

}

Keluaran

Metode Override

Kesimpulan

Konsep polimorfisme di java adalah salah satu fitur yang paling berguna dalam pemrograman berorientasi objek. Lebih lanjut, kemampuan untuk memanggil suatu metode baik pada saat statis maupun waktu berjalan memperluas penerapannya.

Ide dibalik membawa konsep polimorfisme adalah fleksibilitas. Selanjutnya kemampuan untuk memproses sejumlah besar objek dalam satu variabel referensi, membuat pengkodean sedikit lebih mudah. Oleh karena itu, konsep tersebut harus digunakan dalam tugas pengkodean sehari-hari dan merangkul keefektifannya.

Jika Anda ingin mempelajari lebih lanjut tentang teknologi perangkat lunak, perkembangannya, dan mekanisme di baliknya, Anda dapat melihat kursus Program PG Eksekutif dalam Pengembangan Perangkat Lunak – Spesialisasi dalam Pengembangan Full Stack yang ditawarkan oleh upGrad. Kursus spesialisasi adalah program online 23 minggu yang menawarkan lebih dari 300+ studi kasus untuk meningkatkan pengetahuan Anda dan alat yang tersedia serta bahasa pemrograman untuk meningkatkan keterampilan praktis Anda. Jika Anda memiliki pertanyaan lain terkait kursus, kirimkan pesan kepada kami. Tim kami akan menghubungi Anda.

Rencanakan Karir Pengembangan Perangkat Lunak Anda Sekarang.

Mendaftar untuk Program PG Eksekutif dalam Pengembangan Perangkat Lunak dari IIIT-B