Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Polimorfisme di Java OOP dengan Contoh:Apa itu, Dinamis

Apa itu Polimorfisme di Java?

Polimorfisme di Jawa terjadi ketika ada satu atau lebih kelas atau objek yang terkait satu sama lain melalui pewarisan. Ini adalah kemampuan suatu objek untuk mengambil banyak bentuk. Warisan memungkinkan pengguna mewarisi atribut dan metode, dan polimorfisme menggunakan metode ini untuk melakukan tugas yang berbeda. Jadi, tujuannya adalah komunikasi, tetapi pendekatannya berbeda.

Misalnya, Anda memiliki smartphone untuk komunikasi. Mode komunikasi yang Anda pilih bisa apa saja. Bisa berupa telepon, SMS, pesan gambar, surat, dll. Jadi, tujuannya sama yaitu komunikasi, tetapi pendekatannya berbeda. Ini disebut Polimorfisme. Sekarang, kita akan belajar Polimorfisme di Java dengan contoh.

Dalam tutorial Java ini, Anda akan belajar-




Klik di sini jika video tidak dapat diakses

Polimorfisme Java dalam OOP dengan Contoh

Kami memiliki satu kelas induk, 'Akun' dengan fungsi deposit dan penarikan. Akun memiliki 2 kelas anak

Operasi penyetoran dan penarikan sama untuk rekening Tabungan dan Giro. Jadi metode yang diwarisi dari kelas Akun akan berfungsi.

Contoh Polimorfisme Java

Perubahan Persyaratan Perangkat Lunak

Ada perubahan dalam spesifikasi kebutuhan, sesuatu yang sangat umum di industri perangkat lunak. Anda diharapkan untuk menambahkan fungsionalitas Rekening Perbankan dengan Fasilitas Cerukan.

Sebagai latar belakang, cerukan adalah fasilitas di mana Anda dapat menarik jumlah lebih dari saldo yang tersedia di akun Anda.

Jadi, metode penarikan untuk kebutuhan istimewa diimplementasikan lagi. Tetapi Anda tidak mengubah potongan kode yang diuji di rekening Tabungan dan Giro. Ini adalah keuntungan dari OOPS

Langkah 1) Sehingga ketika metode "ditarik" untuk rekening tabungan disebut metode dari kelas akun induk dijalankan

Langkah 2) Tetapi ketika metode "Tarik" untuk akun istimewa (fasilitas cerukan) disebut metode penarikan yang ditentukan di kelas istimewa dijalankan. Ini adalah Polimorfisme dalam OOP.

Mengganti Metode di Java

Method Overriding adalah mendefinisikan ulang metode super class dalam subclass.

Aturan untuk Penggantian Metode

Contoh

class Doctor{
  public void treatPatient(){
  // treatPatient method
  
}
class Surgeon extends Doctor{
  public void treatPatient(){
  // treatPatient method
  }
}
Class run{
  public static void main (String args[]){
    Doctor doctorObj = new Doctor()
	// treatPatient method in class Doctor will be executed
    doctorObj.treatPatient();
   
    Surgeon surgeonObj = new Surgeon();
    // treatPatient  method in class Surgeon  will be executed
    surgeonObj.treatPatient();
  }
}

Perbedaan antara Overloading dan Overriding

Metode Kelebihan Beban

Penggantian Metode
Metode overloading berada di kelas yang sama, di mana lebih dari satu metode memiliki nama yang sama tetapi tanda tangan yang berbeda. Metode overriding adalah ketika salah satu metode di kelas super didefinisikan ulang di sub-kelas. Dalam hal ini, tanda tangan metode tetap sama.
Mis:

void sum (int a , int b);
void sum (int a , int b, int c);
void sum (float a, double b);
Mis:

class X{
  public int sum(){
     // some code
  }
}

class Y extends X{
  public int sum(){
    //overridden method
   //signature is same
 }
}

Apa itu Polimorfisme Dinamis?

Polimorfisme Dinamis dalam OOP adalah mekanisme di mana beberapa metode dapat didefinisikan dengan nama dan tanda tangan yang sama di superclass dan subclass. Panggilan ke metode yang diganti diselesaikan pada waktu proses.

Contoh Polimorfisme Dinamis:

Variabel referensi dari kelas super dapat merujuk ke objek subkelas

 Doctor obj = new Surgeon();

Perhatikan pernyataan

obj.treatPatient();

Di sini variabel referensi "obj" adalah kelas induk, tetapi objek yang ditunjuknya adalah kelas anak (seperti yang ditunjukkan pada contoh diagram Polimorfisme di bawah).

obj.treatPatient() akan mengeksekusi metode treatPatient() dari sub-kelas – Ahli Bedah

Jika referensi kelas dasar digunakan untuk memanggil metode, metode yang akan dipanggil ditentukan oleh JVM, tergantung pada objek yang ditunjuk referensi

Misalnya, meskipun obj adalah referensi ke Doctor, ia memanggil metode Surgeon, karena menunjuk ke objek Surgeon

Ini diputuskan selama run-time dan karenanya disebut dinamis atau polimorfisme run-time

Perbedaan antara Polimorfisme Statis &Dinamis

Polimorfisme Statis di Java adalah jenis polimorfisme yang mengumpulkan informasi untuk memanggil metode pada waktu kompilasi, sedangkan Polimorfisme Dinamis adalah jenis polimorfisme yang mengumpulkan informasi untuk memanggil metode saat runtime.


Polimorfisme Statis

Polimorfisme Dinamis
Berhubungan dengan metode overloading. Berhubungan dengan penggantian metode.
Kesalahan, jika ada, diselesaikan pada waktu kompilasi. Karena kode tidak dieksekusi selama kompilasi, maka namanya static.

Misalnya:

void sum (int a , int b);
void sum (float a, double b);
int sum (int a, int b); //compiler gives error.

Jika variabel referensi memanggil metode yang diganti, metode yang akan dipanggil ditentukan oleh objek, yang ditunjuk oleh variabel referensi Anda. Ini hanya dapat ditentukan pada saat runtime ketika kode di bawah eksekusi, maka namanya dinamis.

Misalnya:

//reference of parent pointing to child object
 Doctor obj = new Surgeon();
// method of child called
obj.treatPatient();

Kata Kunci Super di Java

Bagaimana jika metode treatPatient di kelas Surgeon ingin menjalankan fungsionalitas yang didefinisikan di kelas Doctor dan kemudian menjalankan fungsionalitas spesifiknya sendiri?

Dalam hal ini, kata kunci super dapat digunakan untuk mengakses metode kelas induk dari kelas anak.

Metode treatPatient di kelas Surgeon dapat ditulis sebagai:

treatPatient(){
   super.treatPatient();
     //add code specific to Surgeon
}

Kata kunci super dapat digunakan untuk mengakses setiap anggota data atau metode dari kelas super di sub kelas.

Selanjutnya, kita akan belajar tentang Super keyword, Inheritance dan Polymorphism di Java dengan contoh programnya.

Contoh:-Untuk mempelajari Warisan, Polimorfisme &kata kunci super

Langkah 1) Salin kode berikut ke dalam Editor

public class Test{
     public static void main(String args[]){
        X x= new X();
       Y y = new  Y();
       y.m2();
      //x.m1();
      //y.m1();
     //x = y;// parent pointing to object of child
     //x.m1() ;
     //y.a=10;
   }

}
class X{
   private int a;
   int b;
      public void m1(){
       System.out.println("This is method m1 of class X");
     }
}

class Y extends X{
      int c; // new instance variable of class Y
         public void m1(){
            // overriden method
            System.out.println("This is method m1 of class Y");
        }
       public void m2(){
           super.m1();
           System.out.println("This is method m2 of class Y");
      }
}

Langkah 2) Simpan, Kompilasi &Jalankan kode. Amati keluarannya.

Langkah 3) Hapus komentar pada baris # 6-9. Simpan, Kompilasi &Jalankan kode. Amati keluarannya.

Langkah 4) Batalkan komentar pada baris # 10 . Simpan &Kompilasi kode.

Langkah 5) Kesalahan =? Ini karena sub-kelas tidak dapat mengakses anggota pribadi dari kelas super.

Ringkasan


java

  1. Polimorfisme Jawa
  2. Tutorial Kelas Abstrak C# dengan Contoh:Apa itu Abstraksi?
  3. Apa itu Antarmuka dalam C # dengan Contoh
  4. String Length() Metode di Java:Cara menemukan dengan Contoh
  5. Metode Java String charAt() dengan Contoh
  6. String Java berisi() Metode | Periksa Substring dengan Contoh
  7. Java String EndsWith() Metode dengan Contoh
  8. Variabel Statis di Java:Apa itu Static Block &Method [Contoh]
  9. Antarmuka vs Kelas Abstrak di Jawa:Apa Perbedaannya?
  10. Java BufferedReader:Cara Membaca File di Java dengan Contoh