Senin, 14 November 2011

Penerapan Polymorphism


polymorphism adalah kemampuan sebuah untuk menerjemahkan suatu method menjadi
berbagai macam aksi.

Polymorphism membolehkan kelas induk (superclass) untuk mendefinisikan method umum
untuk semua turunannya. Kelas-kelas turunannya dapat mengimplementasikan method tersebut
sesuai dengan karakteristik masing-masing kelas.

Contoh Penerapan polymorphism.

class Bangun
{
    public double hitungLuas()
    {
        System.out.println("Method umum");
        return 0;
    }
}

class BujurSangkar extends Bangun
{
    private double sisi;

    BujurSangkar(int s)
    {
        sisi = s;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = sisi * sisi;
        return luas;
    }
}

class Segitiga extends Bangun
{
    private double alas;
    private double tinggi;

    Segitiga (int a, int t)
    {
        alas = a;
        tinggi = t;
    }

// overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = 0.5 * alas * tinggi;
        return luas;
    }
}

class Lingkaran extends Bangun
{
    private double jarijari;
    private final double PI = 3.1416;

    Lingkaran(int r)
    {
        jarijari = r;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = PI * jarijari * jarijari;
        return luas;
    }
}

class DemoPolimorfisme2
{
    public static void main(String[] args)
    {
        Bentuk obyek;
        BujurSangkar b = new BujurSangkar(12);
        Segitiga s = new Segitiga(5, 6);
        Lingkaran l = new Lingkaran(4);

        // obyek mengacu pada objek BujurSangkar
        obyek = b;

        // akan memanggil method yang terdapat pada BujurSangkar
        System.out.println(“Luas bujursangkar : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Segitiga
        obyek = s;
       
        // akan memanggil method yang terdapat pada Segitiga
        System.out.println(“Luas segitiga : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Lingkaran
        obyek = l;

        // akan memanggil method yang terdapat pada Lingkaran
        System.out.println(“Luas lingkaran: “ + obyek.hitungLuas());
        System.out.println();
    }
}

Pada diatas kita menggabungkan contoh-contoh sebelumnya untuk menunjukkan bagaimana
polymorphism terbentuk.

Kelas induk adalah Bangun dan mempunyai subclass yaitu BujurSangkar, Segitiga dan Lingkaran.
Semuanya subclass mempunyai method hitungLuas() yang diturunkan dari kelas Bangun.

Perhatikan bahwa meskipun nama method hitungLuas() ada pada semua subclass,
ternyata penerapannya berbeda-beda tergantung pada subclass masing-masing.

Tidak ada komentar:

Posting Komentar

TUGAS BASIS DATA

TUGAS BASIS DATA SOAL PRAKTIK BASIS DATA (TENTANG MENGGUNAKAN SQL DAN KLASIFIKASINYA) Sebuah sekolah akan membuat syste...