Nama S
26 Januari 2024 10:06
Iklan
Nama S
26 Januari 2024 10:06
Pertanyaan
Sebutkan Perbedaan dari Tipe Static dan Dynamic polymorphism dan berikan contoh program untuk overloading dan overriding
8 dari 10 siswa nilainya naik
dengan paket belajar pilihan
Habis dalam
01
:
16
:
07
:
07
1
2
Iklan
Salsabila M
Community
31 Maret 2024 07:04
Polimorfisme adalah konsep dalam pemrograman berorientasi objek di mana sebuah objek dapat memiliki banyak bentuk (atau perilaku) yang berbeda dalam waktu yang berbeda. Polimorfisme dapat terjadi baik secara statis (static) maupun dinamis (dynamic). Berikut adalah perbedaan antara keduanya beserta contoh program untuk overloading dan overriding:
### Static Polymorphism:
1. **Overloading**: Terjadi pada saat kompilasi, di mana beberapa metode dalam sebuah kelas memiliki nama yang sama tetapi parameter yang berbeda.
Contoh program 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));
}
}
```
2. **Overriding**: Terjadi pada saat kompilasi, di mana sebuah subclass memberikan implementasi ulang terhadap metode yang sudah didefinisikan di superclassnya.
Contoh program 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 Animal();
animal.sound();
Cat cat = new Cat();
cat.sound();
}
}
```
### Dynamic Polymorphism:
1. **Overriding**: Terjadi pada saat runtime, di mana sebuah metode yang didefinisikan ulang di subclass dipanggil melalui referensi objek superclass.
Contoh program overriding (dynamic polymorphism):
```java
class Animal {
void sound() {
System.out.println("Suara hewan...");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Meow!");
}
}
public class DynamicPolymorphismExample {
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
}
}
```
2. **Tidak ada overloading yang berbasis runtime pada Java. Overloading hanya terjadi pada saat kompilasi.**
Perhatikan bahwa overloading adalah contoh dari static polymorphism, sedangkan overriding dapat terjadi baik secara static maupun dynamic polymorphism, tergantung pada cara objek dipanggil.
· 0.0 (0)
Iklan
Nanda R
Community
08 April 2024 08:31
Polimorfisme adalah salah satu konsep dasar dalam pemrograman berorientasi objek (OOP) yang mengizinkan objek dari kelas yang berbeda untuk memiliki perilaku yang sama, meskipun kelas-kelas tersebut berbeda secara struktural. Terdapat dua bentuk polimorfisme yang umum, yaitu static polymorphism (polimorfisme statis) dan dynamic polymorphism (polimorfisme dinamis). Berikut adalah perbedaan antara keduanya dan contoh program untuk overloading dan overriding:
Perbedaan antara Static dan Dynamic Polymorphism:
Static Polymorphism (Polimorfisme Statis):
Dynamic Polymorphism (Polimorfisme Dinamis):
Contoh Program untuk Overloading (Static Polymorphism):
public class OverloadingExample {
public void print(int num) {
System.out.println("Printing integer: " + num);
}
public void print(double num) {
System.out.println("Printing double: " + num);
}
public void print(String message) {
System.out.println("Printing string: " + message);
}
public static void main(String[] args) {
OverloadingExample obj = new OverloadingExample();
obj.print(10); // Memanggil metode print(int)
obj.print(10.5); // Memanggil metode print(double)
obj.print("Hello"); // Memanggil metode print(String)
}
}
Contoh Program untuk Overriding (Dynamic Polymorphism):
class Animal {
public void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Cat meows");
}
}
public class OverridingExample {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // Output: Dog barks
animal2.sound(); // Output: Cat meows
}
}
· 0.0 (0)
Tanya ke Forum
Biar Robosquad lain yang jawab soal kamu
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!
Iklan