Nama S
26 Januari 2024 10:06
Iklan
Nama S
26 Januari 2024 10:06
Pertanyaan
Sebutkan dan jelaskan tipe-tipe dari Polymorphism beserta contoh program dari tipe-tipe polymorphism?
1
2
Iklan
Nanda R

Community
06 Maret 2024 21:13
· 0.0 (0)
Iklan
Salsabila M

Community
31 Maret 2024 07:05
Polimorfisme adalah konsep dalam pemrograman berorientasi objek di mana sebuah objek dapat memiliki banyak bentuk (atau perilaku) yang berbeda dalam waktu yang berbeda. Ada dua tipe utama dari polimorfisme dalam pemrograman berorientasi objek: compile-time polymorphism (polimorfisme waktu kompilasi) dan runtime polymorphism (polimorfisme waktu runtime). Mari kita jelaskan keduanya beserta contoh program:
### 1. Compile-time Polymorphism:
Compile-time polymorphism terjadi saat keputusan pada saat kompilasi yang metode yang akan dipanggil terjadi berdasarkan jumlah, tipe, atau urutan parameter yang berbeda. Terdapat dua bentuk compile-time polymorphism: method overloading dan operator overloading.
#### a. Method Overloading:
Method overloading terjadi ketika dua atau lebih metode dalam sebuah kelas memiliki nama yang sama, tetapi memiliki parameter yang berbeda.
Contoh program method overloading:
```java
public class OverloadingExample {
// Metode overloading untuk menghitung luas persegi
public static int hitungLuas(int sisi) {
return sisi * sisi;
}
// Metode overloading untuk menghitung luas persegi panjang
public static int hitungLuas(int panjang, int lebar) {
return panjang * lebar;
}
public static void main(String[] args) {
System.out.println("Luas persegi: " + hitungLuas(5));
System.out.println("Luas persegi panjang: " + hitungLuas(4, 6));
}
}
```
#### b. Operator Overloading:
Java tidak mendukung operator overloading seperti bahasa pemrograman lain seperti C++.
### 2. Runtime Polymorphism:
Runtime polymorphism terjadi saat keputusan pada saat runtime yang metode yang akan dipanggil terjadi berdasarkan objek yang dibuat dalam memori pada saat runtime. Terdapat dua bentuk runtime polymorphism: method overriding dan late binding (dynamic method dispatch).
#### a. Method Overriding:
Method overriding terjadi ketika sebuah subclass memberikan implementasi ulang terhadap metode yang sudah didefinisikan di superclassnya.
Contoh program method overriding:
```java
class Animal {
void sound() {
System.out.println("Suara hewan...");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Meow!");
}
}
public class OverridingExample {
public static void main(String[] args) {
Animal animal = new Cat(); // Objek Cat disimpan dalam referensi Animal
animal.sound(); // Panggil metode sound(), yang akan memanggil implementasi di Cat
}
}
```
#### b. Late Binding (Dynamic Method Dispatch):
Late binding terjadi ketika pemanggilan metode dilakukan pada saat runtime, dan JVM (Java Virtual Machine) menentukan implementasi yang tepat berdasarkan objek yang dibuat dalam memori pada saat runtime.
Contoh program late binding:
```java
class Animal {
void sound() {
System.out.println("Suara hewan...");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Meow!");
}
}
public class DynamicMethodDispatchExample {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Cat(); // Objek Cat disimpan dalam referensi Animal
animal1.sound(); // Panggil metode sound() dari Animal
animal2.sound(); // Panggil metode sound() yang di-overridden dari Cat
}
}
```
Dalam contoh di atas, metode `sound()` yang dipanggil pada saat runtime akan dipilih berdasarkan objek yang dibuat dalam memori. Jadi, metode yang tepat yang akan dipanggil akan ditentukan pada saat runtime.
· 0.0 (0)
Tanya ke AiRIS
Yuk, cobain chat dan belajar bareng AiRIS, teman pintarmu!

LATIHAN SOAL GRATIS!
Drill Soal
Latihan soal sesuai topik yang kamu mau untuk persiapan ujian


Perdalam pemahamanmu bersama Master Teacher
di sesi Live Teaching, GRATIS!