Pages

Jumat, 28 September 2012

Overriding


Overriding berbeda dengan overloading. Overriding menuliskan kembali method yang sama persis (method yang sama tetapi implementasinya berbeda dari method yang khusus dari superclass dan memiliki nilai kembali (return) mathod yang di Overriding harus public).

Contoh:

class SiswaTKI { .............. public String getBaju() { System.out.println(“Hitam”); }}

class SiswaPRL extends SiswaTKI {
  ..............
  public String getBaju() {
    System.out.println(“Hitam dan Hijau”);
  }
}



NB:
o class SiswaPRL nengextends SiswaTKI
o class SiswaPRL melakukan override method di SiswaTKI namun berbeda implementasi

Kesimpulan:
o Override method merupakan method yang sama persis dengan method yang sudah ada di super class, biasanya perbedaannya adalah pada implementasi (program body)
o Overidding tidak bisa dilakukan dalam kelas itu sendiri
o Jadi Overidding kerat kaitannya dengan inheritance (pewarisan)

Contoh lain:
class Lingkaran {
  double r;

  Lingkaran(double r) {
    this.r = r;
  }
  double Luas() {
    return Math.PI*this.r*this.r;
  }
  double Luas(double r) {
    this.r = r;
    return Math.PI*this.r*this.r;
  }
}
class Tabung extends Lingkaran {
  double h;

  Tabung() {
  //konstruktor kelas turunan, ada super() dan diisi nilai awal
    super(0);
  }
  double Luas(double r) {
  //overriding (method and parameter sama)
    this.r = r;
    return Math.PI * this.r * this.r * this.h;
  }
}

NB:
o Class lingkaran melakukan overloading method Luas (beda signature)
o Class tabung mengextends class lingkaran
o Class tabung meng-override method Luas hasil dari overload. Jadi kita juga biosa mengoverride method hasil overloading juga

0 komentar:

Posting Komentar

Anda bertanya, saya akan mencoba menjawabnya ~,~

 

Blogger news

Blogroll