Wednesday, June 1, 2011

[Contoh] Polimorfisme

0 comments
Setelah kemarin saya posting tentang apa itu Polimorfisme, rasanya masih kurang sempurna bila tanpa adanya suatu contoh. Dan postingan saya sekarang akan memuat contoh – contoh dari polimorfisme tersebut. Oke, langsung saja yang pertama \\(0_0)//

//Disimpan dengan Student.java
class Student {
   public void Write(int ID, int Grad, String Fname, String Lname) {
       m_ID = ID;
       m_Graduation = Grad;
       m_First = Fname;
       m_Last = Lname;
    }  
    public void Display(){
        System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
    }  
    private int m_ID, m_Graduation;  
    private String m_First;  
    private String m_Last;
}


Kemudian,

//Simpan dalam StudentGrad.java
class StudentGrad extends Student
{
   public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major)
   {
       super.Write(ID, Grad, Fname, Lname);
       m_UndergradSchool = unSch;
       m_Major = major;
       m_Grad = Grad;
       YearGraduated = yrGrad;
   }
    public void Display()
            {
        super.Display();
        System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated);
    }  
    private Integer YearGraduated,m_Grad;
    private String m_UndergradSchool;
    private String m_Major;
}

Dan yang terakhir

//Simpan dalam bentuk StudentInfo.java
class StudentInfo
{
     public static void main (String args[])
             {
         StudentGrad myStudent = new StudentGrad();
         myStudent.Write(10, 1,"Bob","Smith", 2000,"Columbia University","CS");
         myStudent.Display();  
     }
}


Well, penjelasannya begini (yay)
Class Student mempunyai method Write yang digunakan untuk melewatkan argumen untuk kemudian ditampilkan dengan menggunakan method Display.
Subclass Student dengan nama StudentGrad berisi sintaks untuk menampilkan info kelulusan. Polimorfisme terjadi antara kedua class StudentGrad dan Student dimana pada kedua class mempunyai dua dua method yang sama tetapi mempunyai bentuk yang berbeda sesuai dengan object yang digunakan untuk memanggilnya, yaitu Write() dan Display().
Class lain yaitu StudentInfo yang digunakan untuk memasukan agumen ke kedua method pada masing-masing class Student dan StudentGrad.

Sekarang Contoh yang kedua. Sebenarnya sama saja dengan contoh pertama tadi. (bah)

/*disimpan nama Hewan.java*/
class Hewan {
           
            String nama, jenis, bersuara;
     Hewan(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        this.nama=nama;
                        this.jenis=jenis;
                        this.bersuara=bersuara;
    }
    public String toString(){
            return "Ini adalah "+jenis+"\nNamanya "+nama+"\n"+bersuara;
    }
    public void bersuara(){                  
    }
}

/*disimpan nama Polimorfisme.java*/
import java.util.*;
class Polimorfisme{
    public static void main(String args[]){
        Hewan[] hewannya = {
          new Anjing("Broni", "Herder", "Hug Hug Hug......"),
          new Kucing("Kiti", "Persia", "Meong.. Meong... "),
          new Ayam("Toki", "Buras", "kuk kruyu. ")
        };
        Hewan pilihHewan;
       Random pilih = new Random();
        for (int i = 0; i<5 ; i++){
            pilihHewan = hewannya[pilih.nextInt(hewannya.length)];
           System.out.println("\nPilihan Anda:\n" + pilihHewan);
       
           
        }
    }
}

/*disimpan nama Ayam.java*/
class Ayam extends Hewan{
   
    private String nama,jenis,bersuara;
    Ayam(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
            super(nama, jenis, bersuara);
    }
    public void ShowAyam(){
           
            System.out.println("Nama Ayam : "+nama);
            System.out.println("Jenis Ayam : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("kuk kruyu. ");
    }

}

/*disimpan nama Kucing.java*/
class Kucing extends Hewan
{
    private String nama,jenis,bersuara;
    Kucing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowKucing(){
           
            System.out.println("Nama Kucig : "+nama);
            System.out.println("Jenis Kucing : "+jenis);
           
//sintaks menampilkan nama dan jenis hewan
    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Meong.. Meong... ");
    }
}

/*disimpan nama Anjing.java*/
class Anjing extends Hewan{
   
    private String nama,jenis,bersuara;
   
   
    Anjing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowAnjing(){
           
            System.out.println("Nama Anjing : "+nama);
            System.out.println("Jenis Anjing : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Hug Hug Hug...... ");
    }

}




Leave a Reply