Polimorphism, Overload dan Overiding
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.
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.
- Program C#
using System;
namespace oopm4c_
{
class Program
{
public static void Main(string[] args)
{
Over over1 = new Over();
over1.Header();
over1.set_input(10, 10);
over1.show();
over1 = new Ride();
over1.set_input(10, 10);
over1.show();
Console.ReadKey(true);
}
}
class Over
{
public int satu,dua;
public void set_input(int X,int Y)
{
satu = X; dua = Y;
}
public void Header()
{
Console.WriteLine();
Console.WriteLine(" !!===========================!!");
Console.WriteLine(" !! Tugas OOP 2 Modul 4 !!");
Console.WriteLine(" !!===========================!!");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" !!========= OVERRIDE ========!!");
Console.WriteLine();
Console.WriteLine();
}
public virtual void show()
{
Console.WriteLine(" Ini Over : ");
Console.WriteLine(" Hasil perkalian {0} dan {1} = {2}",satu,dua,satu*dua);
Console.WriteLine();
}
}
class Ride : Over
{
public override void show()
{
Console.WriteLine(" Ini Ride : ");
Console.WriteLine(" Hasil penjumlahan {0} dan {1} = {2}",satu,dua,satu+dua);
Console.WriteLine();
}
}
}
Hasil seperti dibawah ini :
- Program C++
#include <cstdlib>
#include <iostream>
using namespace std;
class over
{
public : int satu,dua;
public : void set_input(int a,int b)
{
satu = a; dua = b;
}
void Header()
{
cout<<" ============================="<<endl;
cout<<" = Override ="<<endl;
cout<<" ============================="<<endl;
cout<<endl;
}
virtual void show()
{
cout<<" Ini Over "<<endl;
cout<<" Hasil perkalian "<<satu<<" dan "<<dua<<" = "<<satu*dua<<endl;
}
};
class ride : public over
{
public : void show()
{
cout<<" Ini Ride "<<endl;
cout<<" Hasil penjumlahan "<<satu<<" dan "<<dua<<" = "<<satu+dua<<endl;
}
};
int main(int argc, char *argv[])
{
over *o = new over();
o->Header();
o->set_input(10,10);
o->show();
o = new ride();
o->set_input(10,10);
o->show();
cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Hasil seperti dibawah ini :
- Program Java
package override;
public class Main
{
public static void main(String[] args)
{
Over over1 = new Over();
over1.Header();
over1.set_input(10, 10);
over1.show();
over1 = new Ride();
over1.set_input(10, 10);
over1.show();
}
}
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("= Override =");
System.out.println("===================");
}
public void show()
{
System.out.println();
System.out.println(" Ini Over : ");
System.out.println();
System.out.println(" Hasil perkalian "+satu+" dan "+dua+" = "+satu*dua);
System.out.println();
}
}
class Ride extends Over
{
@Override
public void show()
{
System.out.println(" Ini Ride : ");
System.out.println();
System.out.println(" Hasil penjumlahan "+satu+" dan "+dua+" = "+(satu+dua));
System.out.println();
}
}
Hasil seperti dibawah ini :
Polymorphisme – Overloading
- Program C#
using System;
namespace oop2m4C_overloading
{
class Program
{
public static void Main(string[] args)
{
over pro = new over();
byte banyak;
const int harga = 45000;
int total;
pro.OperLoad(); // overload method void tanpa parameter
Console.Write(" Masukkan Banyaknya Kaos = ");
banyak = Convert.ToByte(Console.ReadLine());
Console.WriteLine();
pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter
total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai
Console.WriteLine(" Anda harus membayar = {0}",total);
Console.WriteLine();
Console.Write(" Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class over
{
public void OperLoad()
{
Console.WriteLine();
Console.WriteLine(" !!==================================!!");
Console.WriteLine(" !!= Tugas OOP 2 Modul 4 =!!");
Console.WriteLine(" !!==================================!!");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" !!========= Overloading ============!!");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" Harga Kaos Telah ditentukan dengan harga sebesar Rp. 45.000 ");
Console.WriteLine();
}
public void OperLoad(byte banyak,int harga)
{
Console.WriteLine(" Harga perKaos = {0}",harga);
Console.WriteLine();
Console.WriteLine(" Anda membeli = {0} Biji",banyak);
Console.WriteLine();
}
public int OperLoad(int harga,byte banyak)
{
return banyak*harga;
}
}
}
Hasil seperti dibawah ini :
- Program C++
#include <cstdlib>
#include <iostream>
using namespace std;
class over
{
public : void OperLoad()
{
cout<<" =================================="<<endl;
cout<<" = Overload Method ="<<endl;
cout<<" =================================="<<endl;
cout<<endl;
}
public : void OperLoad(long banyak,int harga)
{
cout<<" Harga per Kaos = "<<harga<<endl;
cout<<endl;
cout<<" Anda membeli = "<<banyak<<" biji"<<endl;
cout<<endl;
}
public : int OperLoad(int harga,long banyak)
{
return harga*banyak;
}
};
int main(int argc, char *argv[])
{
over pro;
long banyak;
const int harga = 45000;
int total;
pro.OperLoad(); // overload method void tanpa parameter
cout<<" Banyak Beli Kaos = ";
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
cout<<"\n Anda harus membayar = "<<total;
cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Hasil Seperti Dibawah ini :
- Program Java
package overload;
import java.util.*;
public class Main
{
public static Scanner baca = new Scanner(System.in);
public static void main(String[] args)
{
over pro = new over();
byte banyak; final int harga = 45000; int total;
pro.OperLoad(); // overload method void tanpa parameter
System.out.print(" Banyak Beli Kaos = ");
banyak = baca.nextByte();
System.out.println();
pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter
total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai
System.out.println("\n Anda harus membayar = "+"Rp."+total);
System.out.println();
System.out.print(" Press any key to continue . . . ");
System.out.println();
}
}
class over
{
public void OperLoad()
{
System.out.println("==================================");
System.out.println("= Overload Method =");
System.out.println("==================================");
System.out.println();
System.out.println(" Harga Kaos telah ditentukan dengan harga sebesar Rp. 45.000 ");
System.out.println();
}
public void OperLoad(byte banyak,int harga)
{
System.out.println(" Harga per Kaos = "+"Rp."+harga);
System.out.println();
System.out.println(" Anda membeli = "+banyak+" biji");
}
public int OperLoad(int harga,byte banyak)
{
return banyak*harga;
}
}
Hasil seperti dibawah ini :















Tidak ada komentar:
Posting Komentar