Polimorfisme pada C#

|
Share

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. Berikut ini adalah contoh program yang menggunakan polimorfisme :

//Class kendaraan.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Polymorphism
{
class Kendaraan
{
   public Kendaraan(int posisi)
   {
       this.posisi = posisi;
   }
   private int posisi;
   public int Posisi
   {
       get { return posisi; }
       set { posisi = value; }
   }
   public virtual void Move()
   {
       return;
   }
}
}
//Class motor.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Polymorphism
{
 class Motor : Kendaraan
 {
     public Motor(int posisi)
         : base(posisi)
     { }
     public override void Move()
     {
         base.Posisi = base.Posisi + 30;
     }
 }
}
//Class Mobil.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Polymorphism
{
  class Mobil : Kendaraan
  {
      public Mobil(int posisi)
          : base(posisi)
      { }

      public override void Move()
      {
          base.Posisi = base.Posisi + 70;
      }
  }
}
//Class pesawat.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Polymorphism
{
   class Pesawat : Kendaraan
   {
       public Pesawat(int posisi)
           : base(posisi)
       { }

       public override void Move()
       {
           base.Posisi = base.Posisi + 300;
       }
   }
}
//Class program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Polymorphism
{
    class Program
    {
        static void Main(string[] args)
        {
            int posisi = 10;

            Kendaraan[] kendaraan = new Kendaraan[3];
            kendaraan[0] = new Motor(posisi);
            kendaraan[1] = new Mobil(posisi);
            kendaraan[2] = new Pesawat(posisi);

            Console.WriteLine("Intansiasi 3 Object Turunan Class Kendaraan");
            Console.WriteLine(" -kendaraan[0] merupakan instantsiasi dari class " + "Motor dengan posisi awal " + posisi);
            Console.WriteLine(" -kendaraan[1] merupakan instantsiasi dari class " + "Mobil dengan posisi awal " + posisi);
            Console.WriteLine(" -kendaraan[2] merupakan instantsiasi dari class " + "Pesawat dengan posisi awal " + posisi);

            for (int i = 0; i < kendaraan.Length; i++)
            {
                Console.WriteLine("Object [" + i + "] memanggil method move");
                Console.WriteLine("Posisi sebelum method move() dipanggil : " + kendaraan[i].Posisi);
                kendaraan[i].Move();
                Console.WriteLine("Posisi setelah method move() dipanggil : " + kendaraan[i].Posisi);
                Console.WriteLine();
            }
        }
    }
}

10 komentar:

♥ria♥ mengatakan...

wah script isinya
ga ngerti ^^ tp smart lah kamu

FFR mengatakan...

Bagus materinya... :D

Yohanda Mandala mengatakan...

Thanks buat semua........

seo blog mengatakan...

fery helpfull

Yohanda Mandala mengatakan...

@seo blog you're welcome,,,,,

Lulus Sutopo mengatakan...

Terimakasih share2nya Mas Yohanda..
sukses selalu ya..

Yohanda Mandala mengatakan...

@Lulus Sutopo Oke,,,,,sama sama,,,,,,

Agung Setiawan mengatakan...

terimakasih gan infonya
ane paham juga akhirnya polymorphisme, hhahahaha....

ajonksb.blogspot mengatakan...

wahhhhhhhhhhhhhhhh..............hebat gan q beruntung banget nemuin blog kyak gini

Igun sukasuka mengatakan...

sip makasih elmunya gan,,

sakses selalu,,,

Poskan Komentar

 

©2009 Yohanda's Web Blog