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.

0 komentar:

Contoh project Pemrograman Grafik sederhana OpenGL menggunakan fungsi glLines

import java.util.logging.Level; //import java.util.logging.Logger; //import static komgraf01.KomGraf01.DISPLAY_HEIGHT; //import static k...