Polimorphism, Overload dan Overriding

Polymorphism merupakan salah satu pilar dari Pemrograman Berorientasi Object yaitu kemampuan object untuk mempunyai tipe yang sama dengan aksi yang berbeda terhadap pesan yang sama.

Polymorphism dari struktur katanya dapat diartikan “memiliki banyak bentuk”. Dalam arti luasnya adalah suatu object yang dapat memiliki berbagai bentuk, sebagai object dari Class sendiri atau object dari superclass (induk class) nya. Subclass dapat mendefinisikan perilaku yang akan dilakukannya dengan sendiri tanpa harus murni dari superclass.

Dalam Polymorphism ada dua method yang biasa digunakan yaitu :

1.   Overloading, dimana beberapa method yang memiliki nama yang sama tetapi beda fungsi. Overloading sendiri memiliki ciri nama method harus sama, daftar parameter harus berbeda dan return type yang boleh sama boleh juga tidak.

Contoh sederhana Overloading dapat dilihat di

2.   Overriding, menyatakan keadaan dimana method pada subclass menolak method pada superclass-nya. Ciri dari Overriding adalah nama method, daftar parameter, dan return type yang harus sama.

Polymorphisme – Override

C#

</pre>
namespace poly1

{

class Program

{

public static void Main(string[] args)

{

Over over1 = new Over();

&nbsp;

over1.Header();

over1.set_input(3, 3);

over1.show();

over1 = new Ride();

over1.set_input(6, 3);

over1.show();

&nbsp;

Console.ReadKey(true);

}

}

class Over

{

public int satu, dua;

&nbsp;

public void set_input(int a, int b)

{

satu = a; dua = b;

}

public void Header()

{

Console.WriteLine("   ==================================");

Console.WriteLine("   =     Contoh Program Overrid     =");

Console.WriteLine("   ==================================");

}

public virtual void show()

{

Console.WriteLine("Perkalian");

Console.WriteLine("Hasil perkalian {0} dan {1} = {2}", satu, dua, satu * dua);

}

}

&nbsp;

class Ride : Over

{

public override void show()

{

Console.WriteLine("Pembagian");

Console.WriteLine("Hasil pembagian {0} dan {1} = {2}", satu, dua, satu / dua);

}

}

&nbsp;

&nbsp;

}
<pre>

c#

c++

</pre>
<b><i>#include <cstdlib></i></b>

<b><i>#include <iostream></i></b>

<b><i> </i></b>

<b><i>using namespace std;</i></b>

<b><i> </i></b>

<b><i>class over</i></b>

<b><i>{</i></b>

<b><i>public : int satu,dua;</i></b>

<b><i> </i></b>

<b><i>public :</i></b>

<b><i>void set_input(int a,int b)</i></b>

<b><i>{</i></b>

<b><i>satu = a;    dua = b;</i></b>

<b><i>}</i></b>

<b><i>void Header()</i></b>

<b><i>{</i></b>

<b><i>                cout<<"                         =================================="<<endl;</i></b>

<b><i>               cout<<"                         =       Contoh Program Override   ="<<endl;</i></b>

<b><i>                cout<<"                         =================================="<<endl;</i></b>

<b><i>cout<<endl;</i></b>

<b><i>}</i></b>

<b><i>virtual void show()</i></b>

<b><i>{</i></b>

<b><i>cout<<"perkalian"<<endl;</i></b>

<b><i>cout<<"Hasil perkalian "<<satu<<" dan "<<dua<<" = "<<satu*dua<<endl;</i></b>

<b><i>}</i></b>

<b><i>};</i></b>

<b><i>class ride : public over</i></b>

<b><i>{</i></b>

<b><i>public : void show()</i></b>

<b><i>{</i></b>

<b><i>cout<<"pembagian"<<endl;</i></b>

<b><i>cout<<"Hasil penjumlahan "<<satu<<" dan "<<dua<<" = "<<satu/dua<<endl;</i></b>

<b><i>}</i></b>

<b><i>};</i></b>

<b><i> </i></b>

<b><i>int main(int argc, char *argv[])</i></b>

<b><i>{</i></b>

<b><i>over *o = new over();</i></b>

<b><i> </i></b>

<b><i>o->Header();</i></b>

<b><i> </i></b>

<b><i>o->set_input(3,3);</i></b>

<b><i>o->show();</i></b>

<b><i> </i></b>

<b><i>o = new ride();</i></b>

<b><i> </i></b>

<b><i>o->set_input(6,3);</i></b>

<b><i>o->show();</i></b>

<b><i> </i></b>

<b><i>cout<<endl<<endl;</i></b>

<b><i>system("PAUSE");</i></b>

<b><i>return EXIT_SUCCESS;</i></b>

<b><i>}</i></b>
<pre>

c++

java

</pre>
package poly;

&nbsp;

&nbsp;

public class Poly {

&nbsp;

public static void main(String[] args) {

Over over1 = new Over();

over1.Header();

over1.set_input(3, 3);

over1.show();

over1 = new Ride();

over1.set_input(6, 3);

over1.show();

&nbsp;

}

&nbsp;

}

class Over

{

public int satu,dua;

public void set_input(int a,int b)

{   satu = a;

dua = b;  }

public void Header()

{   System.out.println("   ==================================");

System.out.println("   =     Contoh Program Override    =");

System.out.println("   ==================================");

}

public void show()

{

System.out.println("Perkalian");

System.out.println("Hasil perkalian "+satu+" dan "+dua+" = "+satu*dua);

}

}

class Ride extends Over

{

@Override

public void show()

{

System.out.println("iPembagian");

System.out.println("Hasil penjumlahan "+satu+" dan "+dua+" = "+(satu/dua));

System.out.println();

System.out.println();

}

}
<pre>

Capture

Polymorphisme – Overloading 

C#

</pre>
namespace overload

{

class Program

{

static void Main(string[] args)

{

over pro = new over();

&nbsp;

byte banyak;

const int harga = 5000;

int total;

&nbsp;

pro.OperLoad(); // overload method void tanpa parameter

Console.Write("Banyak Beli CD = ");

banyak = Convert.ToByte(Console.ReadLine());

Console.WriteLine("\n\n");

pro.OperLoad(banyak, harga); // overload method void dengan 2 parameter

total = pro.OperLoad(harga, banyak); //overload method yang mengembalikan nilai

&nbsp;

Console.WriteLine("\nAnda harus membayar = {0}", total);

&nbsp;

Console.WriteLine();

Console.Write("Press any key to continue . . . ");

Console.ReadKey(true);

&nbsp;

}

}

&nbsp;

class over

{

public void OperLoad()

{

Console.WriteLine("   ==================================");

Console.WriteLine("   =         Overload Method        =");

Console.WriteLine("   ==================================");

}

public void OperLoad(byte banyak,int harga)

{

Console.WriteLine("harga per CD = {0}",harga);

Console.WriteLine("Anda membeli = {0} biji",banyak);

}

public int OperLoad(int harga,byte banyak)

{

return banyak*harga;

}

}

&nbsp;

}
<pre>

over c#

c++

</pre>
#include <cstdlib>

#include <iostream>

&nbsp;

using namespace std;

class over

{

public : void OperLoad()

{

cout<<"   =================================="<<endl;

cout<<"   =         Overload Method        ="<<endl;

cout<<"   =================================="<<endl;

}

public : void OperLoad(long banyak,int harga)

{

cout<<"harga per CD = "<<harga<<endl;

cout<<"Anda membeli = "<<banyak<<" biji"<<endl;

}

public : int OperLoad(int harga,long banyak)

{

return harga*banyak;

}

};

int main(int argc, char *argv[])

{

over pro;

&nbsp;

long banyak;

const int harga = 5000;

int total;

&nbsp;

pro.OperLoad(); // overload method void tanpa parameter

cout<<"Banyak Beli CD = ";

cin>>banyak;

cout<<"\n\n";

pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter

total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai

&nbsp;

cout<<"\nAnda harus membayar = "<<total;

cout<<endl<<endl;

system("PAUSE");

return EXIT_SUCCESS;

}

<span style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px;">

overc++

java

</pre>
package poly_over;

import java.util.*;

public class Poly_over {

public static Scanner baca = new Scanner(System.in);

public static void main(String[] args) {

over pro = new over();

&nbsp;

byte banyak;   final int harga = 5000;   int total;

pro.OperLoad(); // overload method void tanpa parameter

System.out.print("Banyak Beli CD = ");

banyak = baca.nextByte();

System.out.println("\n\n");

pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter

total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai

System.out.println("\nAnda harus membayar = "+total);

System.out.println();

&nbsp;

}

}

class over

{

public void OperLoad()

{

System.out.println("   ==================================");

System.out.println("   =         Overload Method        =");

System.out.println("   ==================================");

}

public void OperLoad(byte banyak,int harga)

{

System.out.println("harga per CD = "+banyak);

System.out.println("Anda membeli = "+harga+" biji");

}

public int OperLoad(int harga,byte banyak)

{

return banyak*harga;

}

}
<pre>

over java

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 )

Gambar Twitter

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

Foto Facebook

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

Foto Google+

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

Connecting to %s