Monday 7 May 2012

Polymorphisme Overload Override Java, C# dan C++ || OOP


Overloading adalah suatu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara membedakan tipe parameter, jumlah parameter dan susunan parameter, Manfaat penggunaan overloading adalah agar method yang mempunyai tingkah yang hampir sama mudah diingat oleh developer software.

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


Csharp


class Program
 {
  public static void Main(string[] args)
  {
   Satu s = new Satu();
   
   s.Tes();
   s.Tes("Csharp");
   s.Tes("Csharp",2);
   s.Tes2();
   s = new Dua();
   s.Tes2();
   
   Console.Write("\nPress any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
 
 class Satu
 {
  public void Tes() //---> overload method
  {
   Console.WriteLine("Testing");
  }
  
  public void Tes(string a) //---> overload method
  {
   Console.WriteLine("Testing {0}",a);
  }
  
  public void Tes(string a,int b) //---> overload method
  {
   Console.WriteLine("Testing {0} ke {1}",a,b);
  }
  
  public virtual void Tes2()
  {
   Console.WriteLine("Override 1");
  }
 }
 
 class Dua : Satu
 {
  public override void Tes2() //---> override
  {
   Console.WriteLine("Override 2");
  }
 }  

Java


package OOPpraktikum;
import java.util.*;

public class MainClass 
{
 private static Scanner input = new Scanner(System.in);
 public static void main(String[] args) 
 {
  Satu s = new Satu();
  
  s.Tes();
  s.Tes("Csharp");
  s.Tes("Csharp",2);
  s.Tes2();
  s = new Dua();
  s.Tes2();
  
  System.out.println("\nPress any key to continue . . . ");

 }

}

class Satu
{
 public void Tes() //---> overload method
 {
  System.out.println("Testing");
 }
 
 public void Tes(String a) //---> overload method
 {
  System.out.println("Testing "+a);
 }
 
 public void Tes(String a,int b) //---> overload method
 {
  System.out.println("Testing "+a+" ke "+b);
 }
 
 public void Tes2()
 {
  System.out.println("Override 1");
 }
}

class Dua extends Satu
{
 @Override
 public void Tes2() //---> override
 {
  System.out.println("Override 2");
 }
}  

C++

#include <cstdlib>
#include <iostream>

using namespace std;

class Satu //--->Class
{
    public :
           void Tes() //---> overload method
         {
          cout<<"Testing"<<endl;
         }
 
         void Tes(string a) //---> overload method
         {
          cout<<"Testing "<<a<<endl;
         }
 
         void Tes(string a,int b) //---> overload method
         {
          cout<<"Testing "<<a<<" ke "<<b<<endl;
         }
         virtual void Tes2()
         {
          cout<<"Override 1"<<endl;
         }
};

class Dua : public Satu
{
      public :
             void Tes2()  //--->override
         {
          cout<<"Override 2"<<endl;
         }
};

int main(int argc, char *argv[])
{            
             Satu s;
             Dua d;
             Satu *c;
  
  s.Tes();
  s.Tes("Csharp");
  s.Tes("Csharp",2);
        
        s.Tes2();
        c = &d;
        c->Tes2();
    
    cout<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}  


Contoh program diatas punya 2 kelas selain class main, pada class Satu ada beberapa method yang sama namanya tapi pada parameternya berbeda . . itu contoh method overloadnya, trus pada class Dua itu contoh method overridenya,, method itu menulis ulang method virtual yang d turunkan oleh Class Satu,, perintah pada method override boleh berbeda dari method aslinya, ya sebernya si memang gunanya override untuk memodifikasi isi dari method asalnya . . .
smoga bisa dicopy n dipahami contoh kode program di atass . .
hehehehehehe

No comments:

Post a Comment