Rabu, 25 April 2012

Polimorfisme - Overriding

Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu “Polimorfisme”, yaitu suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil” dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai Polimorfisme, yaitu penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut.



Overriding

Overriding digunakan oleh Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuannya adalah supaya  subclass memiliki tingkah laku yang lebih spesifik. Ini dilakukan dengan  cara mendeklarasikan kembali method milik parent class di subclass.

  • Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass.
  • tujuan : subclass memiliki tingkah laku yang lebih spesifik.
  • dilakukan dengan cara mendeklarasikan kembali method milik parent class di subclass.
  • Deklarasi method pada subclass harus sama dengan yang terdapat di super class.  kesamaan pada :

  1. nama
  2. return type (untuk return type : class A atau merupakan subclass dari A)
  3. daftar marameter (jumlah, type, dan urutan)

  • method pada parent class disebut overriden method
  • method pada subclass disebut overriding method

berikut contoh program menurut versinya

versi C# :

 using System;

namespace polimorfismeOverriding
{
 class overriding
 {
  public int nilai1,nilai2;
  public void input(int a, int b)
  {
   nilai1=a;
   nilai2=b;
  }
  public virtual void show()
  {
   int hasil;
   hasil=nilai1+nilai2;
   Console.WriteLine("override 1");
   Console.WriteLine("Hasil penjumlahan {0} dan {1} = {2}",nilai1,nilai2,hasil);
  }
 }
 class riding : overriding
 {
  public override void show()
  {
   int hasil;
   hasil=nilai1+nilai2;
   Console.WriteLine("override 2");
   Console.WriteLine("Hasil penjumlahan {0} dan {1} = {2}",nilai1,nilai2,hasil);
  }
 }
 class Program
 {
  public static void Main(string[] args)
  {
   overriding over = new overriding();
   over.input(3,4);
   over.show();
   
   over=new riding();
   over.input(5,6);
   over.show();
   Console.ReadKey(true);
  }
 }
}


over C#

Versi Java :

package polimorfismeoverrid_java;
class OvrRide {
public int Nilai1, Nilai2;
public void Input(int x, int y) {
Nilai1 = x;
Nilai2 = y;
}
public void show() {
int hasil = Nilai1 + Nilai2;
System.out.println("Override 1");
System.out.print("Hasil Penjumlahan " + Nilai1 + " dan " + Nilai2 + " = " + hasil);
System.out.println();System.out.println();
}
}
class Ride extends OvrRide {
@Override
public void show() {
int hasil = Nilai1+Nilai2;
System.out.println("Override 2");
System.out.print("Hasil Penjumlahan " + Nilai1 + " dan " + Nilai2 + " = " + hasil);
System.out.println();
}
}
public class Main {

    
    public static void main(String[] args) {
        OvrRide over = new OvrRide();
        over.Input(3, 4);
        over.show();
        over = new Ride();
        over.Input(5, 6);
        over.show();
    }

}
over java


Versi C++ :

using namespace std;
class OvrRide {
public : int nilai1 , nilai2;
public : void Input(int a, int b) {
nilai1 = a;
nilai2 = b;
}
public : virtual void show(){
int hasil = nilai1 + nilai2;
cout << "Override 1" << endl;
cout << "Hasil penjumlahan " << nilai1 << " dan " << nilai2 << " = " << hasil;
cout << endl;cout << endl;
}
};
class Ride : public OvrRide {
public : void show(){
int hasil = nilai1 + nilai2;
cout << "Override 2" << endl;
cout << "Hasil penjumlahan " << nilai1 << " dan " << nilai2 << " = " << hasil;
cout << endl;cout << endl;
}
};
int main(int argc, char *argv[])
{
    OvrRide over;
    Ride ride;
    over.Input(3, 4);
    over.show();
    ride.Input(5, 6);
    ride.show();
    system("PAUSE");
    return EXIT_SUCCESS;
}
over c


Sekian dulu penjelasan tentang polimorfisme overriding
contoh program di atas dapat di download di bawah ini

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More