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

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

Klaim

1

2

Jawaban terverifikasi

Iklan

Salsabila M

Community

31 Maret 2024 07:04

Jawaban terverifikasi

<p>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:</p><p>### Static Polymorphism:<br>1. **Overloading**: Terjadi pada saat kompilasi, di mana beberapa metode dalam sebuah kelas memiliki nama yang sama tetapi parameter yang berbeda.<br>&nbsp;&nbsp;<br>Contoh program overloading:<br>```java<br>public class OverloadingExample {<br>&nbsp; &nbsp;// Metode overloading untuk menghitung luas persegi<br>&nbsp; &nbsp;public static int hitungLuas(int sisi) {<br>&nbsp; &nbsp; &nbsp; &nbsp;return sisi * sisi;<br>&nbsp; &nbsp;}<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;// Metode overloading untuk menghitung luas persegi panjang<br>&nbsp; &nbsp;public static int hitungLuas(int panjang, int lebar) {<br>&nbsp; &nbsp; &nbsp; &nbsp;return panjang * lebar;<br>&nbsp; &nbsp;}<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Luas persegi: " + hitungLuas(5));<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Luas persegi panjang: " + hitungLuas(4, 6));<br>&nbsp; &nbsp;}<br>}<br>```</p><p>2. **Overriding**: Terjadi pada saat kompilasi, di mana sebuah subclass memberikan implementasi ulang terhadap metode yang sudah didefinisikan di superclassnya.<br>&nbsp;&nbsp;<br>Contoh program overriding:<br>```java<br>class Animal {<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Suara hewan...");<br>&nbsp; &nbsp;}<br>}</p><p>class Cat extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Meow!");<br>&nbsp; &nbsp;}<br>}</p><p>public class OverridingExample {<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal = new Animal();<br>&nbsp; &nbsp; &nbsp; &nbsp;animal.sound();<br>&nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp;Cat cat = new Cat();<br>&nbsp; &nbsp; &nbsp; &nbsp;cat.sound();<br>&nbsp; &nbsp;}<br>}<br>```</p><p>### Dynamic Polymorphism:<br>1. **Overriding**: Terjadi pada saat runtime, di mana sebuah metode yang didefinisikan ulang di subclass dipanggil melalui referensi objek superclass.<br>&nbsp;&nbsp;<br>Contoh program overriding (dynamic polymorphism):<br>```java<br>class Animal {<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Suara hewan...");<br>&nbsp; &nbsp;}<br>}</p><p>class Cat extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Meow!");<br>&nbsp; &nbsp;}<br>}</p><p>public class DynamicPolymorphismExample {<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal = new Cat(); // Objek Cat disimpan dalam referensi Animal<br>&nbsp; &nbsp; &nbsp; &nbsp;animal.sound(); // Panggil metode sound(), yang akan memanggil implementasi di Cat<br>&nbsp; &nbsp;}<br>}<br>```</p><p>2. **Tidak ada overloading yang berbasis runtime pada Java. Overloading hanya terjadi pada saat kompilasi.**</p><p>Perhatikan bahwa overloading adalah contoh dari static polymorphism, sedangkan overriding dapat terjadi baik secara static maupun dynamic polymorphism, tergantung pada cara objek dipanggil.</p>

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.


Iklan

Nanda R

Community

08 April 2024 08:31

Jawaban terverifikasi

<p>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:</p><p><strong>Perbedaan antara Static dan Dynamic Polymorphism:</strong></p><p><strong>Static Polymorphism (Polimorfisme Statis)</strong>:</p><ul><li>Disebut juga dengan Compile-time Polymorphism.</li><li>Perilaku yang terjadi pada saat kompilasi.</li><li>Resolusi metode terjadi saat kompilasi berdasarkan tipe referensi.</li><li>Contoh: Metode Overloading.</li></ul><p><strong>Dynamic Polymorphism (Polimorfisme Dinamis)</strong>:</p><ul><li>Disebut juga dengan Run-time Polymorphism.</li><li>Perilaku yang terjadi saat runtime.</li><li>Resolusi metode terjadi saat runtime berdasarkan tipe objek aktual.</li><li>Contoh: Metode Overriding.</li></ul><p><strong>Contoh Program untuk Overloading (Static Polymorphism):</strong></p><p>public class OverloadingExample {<br>&nbsp; &nbsp;public void print(int num) {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Printing integer: " + num);<br>&nbsp; &nbsp;}</p><p>&nbsp; &nbsp;public void print(double num) {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Printing double: " + num);<br>&nbsp; &nbsp;}</p><p>&nbsp; &nbsp;public void print(String message) {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Printing string: " + message);<br>&nbsp; &nbsp;}</p><p>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;OverloadingExample obj = new OverloadingExample();<br>&nbsp; &nbsp; &nbsp; &nbsp;obj.print(10); &nbsp; &nbsp; &nbsp; // Memanggil metode print(int)<br>&nbsp; &nbsp; &nbsp; &nbsp;obj.print(10.5); &nbsp; &nbsp; // Memanggil metode print(double)<br>&nbsp; &nbsp; &nbsp; &nbsp;obj.print("Hello"); &nbsp;// Memanggil metode print(String)<br>&nbsp; &nbsp;}<br>}<br><strong>Contoh Program untuk Overriding (Dynamic Polymorphism):</strong></p><p>class Animal {<br>&nbsp; &nbsp;public void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Animal makes a sound");<br>&nbsp; &nbsp;}<br>}</p><p>class Dog extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;public void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Dog barks");<br>&nbsp; &nbsp;}<br>}</p><p>class Cat extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;public void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Cat meows");<br>&nbsp; &nbsp;}<br>}</p><p>public class OverridingExample {<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal1 = new Dog();<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal2 = new Cat();</p><p>&nbsp; &nbsp; &nbsp; &nbsp;animal1.sound(); // Output: Dog barks<br>&nbsp; &nbsp; &nbsp; &nbsp;animal2.sound(); // Output: Cat meows<br>&nbsp; &nbsp;}<br>}<br>&nbsp;</p>

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):

  • Disebut juga dengan Compile-time Polymorphism.
  • Perilaku yang terjadi pada saat kompilasi.
  • Resolusi metode terjadi saat kompilasi berdasarkan tipe referensi.
  • Contoh: Metode Overloading.

Dynamic Polymorphism (Polimorfisme Dinamis):

  • Disebut juga dengan Run-time Polymorphism.
  • Perilaku yang terjadi saat runtime.
  • Resolusi metode terjadi saat runtime berdasarkan tipe objek aktual.
  • Contoh: Metode Overriding.

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
   }
}
 


Mau pemahaman lebih dalam untuk soal ini?

Tanya ke Forum

Biar Robosquad lain yang jawab soal kamu

Tanya ke Forum

LATIHAN SOAL GRATIS!

Drill Soal

Latihan soal sesuai topik yang kamu mau untuk persiapan ujian

Cobain Drill Soal

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

Iklan