Polimorfisme di Java: Panduan Langkah demi Langkah – Codewithaden

Polimorfisme berasal dari dua kata Yunani poli berarti banyak, dan morf berarti bentuk atau jenis. Jadi polimorfisme dapat didefinisikan sebagai kata yang dapat ditampilkan dalam berbagai bentuk/banyak bentuk. Tetapi dalam kasus Java, itu adalah operator atau konstruktor atau metode yang dapat ditampilkan dalam berbagai bentuk.

Apa itu polimorfisme dalam pemrograman

Polimorfisme adalah salah satu dari Ups konsep. Warisan Mari kita mewarisi atribut dan metode dari kelas lain.

Misalnya, Anda memiliki ponsel untuk komunikasi, mode komunikasi yang Anda pilih bisa seperti panggilan, pesan teks, pesan gambar, surat, dll. Jadi, tujuan utama kami adalah umum, yaitu komunikasi, tetapi pendekatan mereka adalah berbeda. Ini disebut Polimorfisme.

Polimorfisme di Java

Polimorfisme memiliki kemampuan metode untuk melakukan hal -hal yang berbeda berdasarkan objek yang ditindaklanjuti. Dengan kata lain, polimorfisme memungkinkan Anda untuk mendefinisikan satu antarmuka dan memiliki banyak implementasi. Polimorfisme di Jawa menggunakan metode tersebut untuk melakukan tugas yang berbeda. Polimorfisme memungkinkan kita untuk melakukan satu aksi dengan cara yang berbeda.

Terutama ada dua jenis polimorfisme di Java:

  1. Kompilasi polimorfisme waktu
  2. Jalankan polimorfisme waktu

Kompilasi polimorfisme waktu

Operasi apa pun yang menunjukkan polimorfisme selama waktu kompilasi dikenal sebagai polimorfisme waktu kompilasi. Ini juga dikenal sebagai polimorfisme statis. Misalnya, kelebihan muatan operator, overloading konstruktor, dan kelebihan metode adalah contoh polimorfisme waktu kompilasi.

Operator Overloading

Java memberikan aksesibilitas kepada operator yang berlebihan. Misalnya, kita dapat menggunakan operator ‘+’ untuk penambahan dua angka dan gabungan dua string. ‘+’ Adalah satu -satunya operator di Java yang digunakan untuk kelebihan muatan operator.

Overloading konstruktor

Saat kelas memiliki lebih dari satu konstruktor Dengan parameter yang berbeda, dikenal sebagai konstruktor kelebihan beban. Ini menunjukkan polimorfisme. Lihat program berikut.

class child {
  child() {
    System.out.println("Hi !");
  }

  child(String name) {
    System.out.println("Name is " + name);
  }

  child(String name, int std) {
    System.out.println("My name is " + name + "and I'm in class" + std);
  }

  public static void main(String args[]) {
    child ch = new child();
    child ch1 = new child("Shouvik");
    child ch2 = new child("Shouvik ", 10);
  }
} 

Lihat output berikut.

Polymorphism

Metode Overloading

Overloading metode berarti kelas memiliki beberapa metode dengan nama yang sama tetapi berbeda dalam parameter. Dan metode kelebihan beban ini berada di bawah polimorfisme waktu kompilasi.

Lihat program berikut.

class overload {
  void show(String name) {
    System.out.println(name);
  }

  void show(String name, int std) {
    System.out.println(name + " " + std);
  }
}

class goal {
  public static void main(String[] args) {
    overload ob = new overload();
    ob.show("shouvik");
    ob.show("shouvik", 10);
  }
} 

Lihat output berikut.

Method

Jalankan polimorfisme waktu

Operasi apa pun yang menunjukkan polimorfisme selama waktu berjalan dikenal sebagai polimorfisme waktu lari. Ini juga dikenal sebagai polimorfisme dinamis. Metode overriding adalah contoh terbaik dari polimorfisme waktu lari.

Upcasting

Jika variabel referensi dari kelas induk mengacu pada objek kelas anak, itu dikenal sebagai Upcasting.

Lihat sintaks berikut.

class A{}  
class B extends A{}
A a=new B(); 

Kita dapat menggunakan variabel referensi dari jenis kelas atau antarmuka Ketik untuk Upcasting.

interface I{}  
class A{}  
class B extends A implements I{} 

Sekarang, mari kita tentukan hubungannya.

B IS-A A
B IS-A I
B IS-A Object 

Metode utama

Metode utama dalam Java dapat didefinisikan sebagai metode dalam kelas subkelas atau anak yang sudah ada di superclass.

Lihat program berikut.

class car {
  void run() {
    System.out.println("car is running");
  }
}

class bike extends car {
  void run() {
    System.out.println("bike is running");
  }

  public static void main(String args[]) {
    bike ob = new bike();
    ob.run();
  }
} 

Lihat output berikut.

Method

Polimorfisme runtime java dengan anggota data

Metode diganti, bukan anggota data, sehingga anggota data tidak dapat mencapai polimorfisme runtime.

Dalam contoh yang diberikan di bawah ini, kedua kelas memiliki kecepatan anggota data. Kami mengakses anggota data dengan variabel referensi dari kelas induk, yang mengacu pada objek subkelas. Karena kami mengakses anggota data yang tidak diganti, itu akan selalu mengakses anggota data dari kelas induk.

Lihat contoh kode berikut.

class Car {
    int speed = 80;
}

class GC extends Car {
  int speed = 140;

  public static void main(String args[]) {
    Car c = new GC();
    System.out.println(c.speed);
  }
} 

Lihat output berikut.

Java

Java Runtime Polymorphism dengan warisan multilevel

Mari kita lihat contoh sederhana polimorfisme runtime dengan warisan multilevel.

class Doc {
  void print() {
    System.out.println("Printing");
  }
}

class PDF extends Doc {
  void print() {
    System.out.println("Printing PDF Docs");
  }
}

class Word extends Doc {
  void print() {
    System.out.println("Printing Word Docs");
  }

  public static void main(String args[]) {
    Doc d1, d2, d3;
    d1 = new Doc();
    d2 = new PDF();
    d3 = new Word();
    d1.print();
    d2.print();
    d3.print();
  }
} 

Lihat output berikut.

Java

Perbedaan antara polimorfisme statis dan dinamis

Polimorfisme statis
Polimorfisme dinamis
Ini berkaitan dengan metode yang berlebihan. Ini berkaitan dengan metode yang utama.

Kesalahan, jika ada, diselesaikan pada waktu kompilasi. Karena kode kami tidak dieksekusi selama kompilasi, namanya statis.

Mantan:

void mul (int x , int y);
void mul (float x, double y);
int mul (int x, int y); //compiler gives error.

 

Jika variabel referensi memanggil metode yang ditimpa, metode yang akan dipanggil ditentukan oleh objek variabel referensi Anda menunjuk ke. Itu hanya dapat diputuskan ketika kode sedang dieksekusi saat runtime, maka namanya dinamis.

Mantan:

//reference of parent pointing to child object
 Engineer eng = new ITE();
// method of child called
eng.createProduct();
 

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *