BAB 3(Polymorphism)

Polymorphic (Banyak bentuk)
Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Keuntungan Polymorphism:

  • Kita dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas) dan membuat kelas-kelas baru berdasar super kelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
  • Kita dapat membuat super kelas yang hanya mendefinisikan behaviour namun tidak memberikan implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas,kelas semacam ini disebut kelas abstrak karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini yang disebut kelas konkret,mengimplementasikan behaviuor abstrak tersebut sesuai dengan kebutuhan masing-masing.
  • Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.

Hubungan antara teknik overloading dengan Polymorphism :

Hubungan antara overloading dengan Polymorphism adalah mendefinisikan method yang memiliki nama yang sama,tetapi dengan signature atau tanda yang berbeda dalam definisi kelas yang sama. Overloading berbeda dengan overriding yang mendifinisikan kembali method yang sama,baik nama method maupun signature atau parameter yang diperlukan dalam subkelas.

C#
/*
 * Created by SharpDevelop.
 * User: user
 * Date: 08/04/2013
 * Time: 20:14
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
 using System;

namespace Polimorm
 {
 class Program
 {
 public static void Main(string[] args)
 {
 kendaraan KENDARAAN = new kendaraan();
 sepeda SEPEDA = new sepeda();
 mobil MOBIL = new mobil();

KENDARAAN.suara();
 SEPEDA.suara();
 MOBIL.suara();

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

class kendaraan {
 public void suara (){
 Console.WriteLine("kendaraan bersuara :");
 }
 }

class sepeda : kendaraan {
 public void suara(){
 Console.WriteLine("sepeda:grrreeeenngg......");
 }
 }
 class mobil : kendaraan {
 public void suara (){
 Console.WriteLine("mobil:ngengg.......");
 }
 }
 }

ini debugnya:

Capture

C++

#include <cstdlib>
 #include <iostream>
 using namespace std;
 class kendaraan {
 public : void suara (){
 cout<<"kendaraan bersuara :"<<endl;
 }
 };
 class sepeda : kendaraan {
 public : void suara(){
 cout<<"sepeda:greeenggg..."<<endl;
 }
 };
 class mobil : kendaraan {
 public : void suara (){
 cout<<"mobil:ngenggg..."<<endl;
 }
 };
 int main(int argc, char *argv[])
 {
 kendaraan KENDARAAN ;
 sepeda SEPEDA ;
 mobil MOBIL ;

KENDARAAN.suara();
 SEPEDA.suara();
 MOBIL.suara();
 cout<<endl;
 system("PAUSE");
 return EXIT_SUCCESS;
 }

ini debugnya:

Capture1

JAVA

package polimmorm_java;

public class Main {

public static void main(String[] args) {
 kendaraan KENDARAAN = new kendaraan();
 sepeda SEPEDA = new sepeda();
 mobil MOBIL = new mobil();

KENDARAAN.suara();
 KENDARAAN = SEPEDA;
 KENDARAAN.suara();
 KENDARAAN = MOBIL;
 KENDARAAN.suara();

}

}
 class kendaraan {
 public void suara (){
 System.out.println("kendaraan bersuara :");
 }
 }
 class sepeda extends kendaraan {
 public void suara(){
 System.out.println("sepeda:greennggg.....");
 }
 }
 class mobil extends kendaraan {
 public void suara (){
 System.out.println("mobil:ngengg.....");
 }
 }

debugnya:

Capture2

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