Saturday, September 14, 2013

Overriding Pada Java

Karena besok ada kuis nih di kampus, untuk membantu temen - temen yang belum ngerti ane pengen ngasih contoh ovveriding buat temen - temen:

Buat 3 class terlebih dahulu. pada contoh kali ini adalah Lingkaran, Tabung, Kerucut:
public class Lingkaran {

    int r;

    public int getLuasLingkaran(int r) {
        return (int) Math.PI * r * r;
    }

    public void luas() {
        int luas = getLuasLingkaran(this.r);
        System.out.println("Luas        : " + luas);
    }

    public int getKelilingLingkaran(int r) {
        return (int) Math.PI * (r * 2);
    }

    public void keliling() {
        int keliling = getKelilingLingkaran(this.r);
        System.out.println("Keliling    : " + keliling);
    }
}

public class Tabung extends Lingkaran{
    int tinggi;
    int jari;
   
    @Override
    public void luas(){
        int luas = (2 * super.getLuasLingkaran(this.jari)) + (tinggi * super.getKelilingLingkaran(this.jari));
        System.out.println("Luas        : " + luas);
    }
   
    public void volume(){
        int volume = super.getLuasLingkaran(this.jari) * tinggi;
        System.out.println("Volume      : " + volume);
    }
}

public class Kerucut extends Lingkaran{
    int tinggi;
    int jari;
    
    @Override
    public void luas(){
        int selimut = (int) Math.sqrt(Math.pow(this.tinggi,2) + Math.pow(this.jari,2));
        int luas = (super.getLuasLingkaran(this.jari) + (selimut * (int) Math.PI * this.jari));
        System.out.println("Luas        : " + luas);
    }
    
    public void volume(){
        int volume = (int)(0.333 * (super.getLuasLingkaran(this.jari) * tinggi));
        System.out.println("Volume      : " + volume);
    }
}

perlu diketahui bahwa class berwarna merah adalah super class dari class yang berwarna biru dan hijau. Dari sini akan tampak kegunaan overriding. Perhatikan fungsi luas() pada setiap class. ketiga fungsi tersebut bertipe fungsi sama, nama fungsi sama, dan nilai kembaliannyapun sama.Namun , di sinilah overriding berperan karena fungsi luas() di dalam tabung akan menampilkan luas tabung dan fungsi luas() pada kerucut akan menampilkan luas kerucut. Semoga Bermanfaat.

No comments:

Post a Comment