Overloading method

Syarat Overloading

  • Dalam sebuah kelas diperbolehkan ada lebih dari satu method dengan nama yang sama dengan catatan methods dapat dibedakan berdasarkan banyaknya parameter atau tipe data parameter formal
class Lingkaran {
  double r;
  Lingkaran (double r) {
    this.r = r;
  }
  double Luas() {
    return Math.PI*this.r*this.r;
  }
  double Luas (double r) {
  //overloading method Luas() beda signature
    this.r = r;
    return Math.PI*this.r*this.r;
  }
  double Luas (int r) {
  //overloading method Luas() beda signature
    System.out.println("tipe data harus double. r tidak diubah!");
    return Math.PI*this.r*this.r;
  }
  double Luas (double r, double PI) {
  //overloading method Luas() beda signature
    this.r = r;
    return PI*this.r*this.r;
  }
}
  • Overloading tidak bisa dilakukan dengan membedakan nilai kembaliannya
class Lingkaran {
  double r;
  Lingkaran (double r) {
    this.r = r;
  }
  double Luas() {
    return Math.PI*this.r*this.r;
  }
  //String Luas() { //bukan overloading method Luas() beda nilai kembalian
  //	return "Luasnya : " + Math.PI*this.r*this.r;
  //}
}
  • Overloading juga bisa dilakukan pada sub kelasnya
class Lingkaran {
  double r;
  Lingkaran(double r) {
    this.r = r;
  }
  double Luas() {
    return Math.PI*this.r*this.r;
  }
  double Luas(double r) { 
  //overloading method Luas() beda signature
    this.r = r;
    return Math.PI*this.r*this.r;
  }
  double Luas(int r) { 
  //overloading method Luas() beda signature
    System.out.println("tipe data harus double. r tidak diubah!");
    return Math.PI*this.r*this.r;
  }
  double Luas(double r, double PI) {
  //overloading method Luas() beda signature
    this.r = r;
    return PI*this.r*this.r;
  }
}
class Tabung extends Lingkaran {
  double h;
  Tabung() {
    super(0);
    //konstruktor kelas turunan, ada keyword super()
    //diisi nilai awal
  }
  double Luas(double r, double PI, double h) {
  //overloading method Luas() beda signature
    this.r = r;
    return PI*this.r*this.r*this.h;
  }
}

Overloading method dapat digunakan ketika kita mempunyai operasi yang sama namun berbeda implementasinya. Yang terpenting dalam melakukan ini, nama method harus sama, tapi mempunyai parameter yang berbeda. Terserah berbeda dari segi tipe datanya atau jumlah parameternya. Tergantung kebutuhan untuk implementasi dan nilai kembaliannya. Jadi yang perlu diingat saat melakukan overloading method:

• Nama method sama

• Parameter berbeda (baik tipe maupun jumlahnya)

• Tipe data nilai kembalian dapat berbeda atau sama

Overloading itu mendeklarasikan lebih dari satu kali dengan syarat-syarat tertentu. baik overloading method ataupun konstruktor

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s