Selasa, 17 April 2012

Inheritance

Inheritance




Pewarisan (Inheritance) adalah penurunan sifat yang ada pada suatu kelas kepada kelas baru yang menjadi turunannya. Sifat-sifat suatu kelas ditentukan oleh data anggota dan metode, sehingga yang dimaksud penurunan sifat adalah penurunan sifat adalah penurunan data anggota atau metode. Kelas yang menurunkan sifat disebut kelas dasar disebut kelas turunan (derived class).

Dengan pewarisan dapat diciptakan suatu kelas baru yang mana kelas tersebut mewarisi seluruh sifat kelas dasar kelas yang mempunyai akses public atau protected ditambah sifat khusus dari kelas yang bersangkutan. Ketentuan utama dengan adanya pewarisan yaitu memungkinkan suatu kode yang telah ditulis mudah sekali untuk digunakan kembali. Kita telah membuat suatu kelas yang telah diuji. dan suatu hari nanti, kita ingin menerapkan kode tersebut pada sesuatu yang memiliki sifat-sifat kelas tersebut, tinggal mewariskan kelas yang telah ada di kelas baru (kelas turunan). Kita tidak perlu  mengotak ngatik kelas yang teruji, sehingga efek samping yang tidak diharapkan tidak terjadi. Dengan cara ini pengembangan program menjadi lebih efisien dan hemat waktu. Selain itu, kita dapat menambahkan sifat-sifat baru yang tidak ada pada kelas dasar atau bahkan dapat mengganti sifat-sifat pada kelas turunan, yang berbeda dengan sifat kelas dasar.


Pengertian Inheritance
• Inheritance merupakan salah satu dari tiga konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek / y dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
• Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
• Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
Deklarasi Inheritance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class‐nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.





Contoh Program:


class mahasiswa {
    private int npm;
    private String nama;
    private buku bukunya[];
    private int jumlah;
    public mahasiswa(int n, String m){
        npm = n;
        nama = m;
        jumlah = 0;
        bukunya = new buku [3];
        System.out.println("Constructor mahasiswa "+nama);
    }    public void pinjam_buku(buku b){
        if (jumlah < 3){
            bukunya[jumlah] = b;
            jumlah++;
            System.out.println(nama+" pinjam buku "+b.get_judul()+" karangan "+b.get_pengarang());
        }
        else
        System.out.println("Sudah Penuh!");
    }
    public void daftar_buku(){
        System.out.println("Daftar Bukunya "+nama+":");
        for(int i=0; i<jumlah; i++){
            System.out.println(i+1+". "+bukunya[i].get_judul());
        }
    }
}
class buku {
    public String judul;
    public String pengarang;
    public String penerbit;
    public buku(){};
    public buku(String j, String p){
        judul = j;
        pengarang = p;
        System.out.println("Constructor buku "+judul);
    }
    public void milik_buku(){
        System.out.println("Method ini milik class induk");
    }
    public String get_judul(){
        return judul;
    }
    public String get_pengarang(){
        return pengarang;
    }
}
class buku_sejarah extends buku {
    public void view_buku_sejarah(){
        milik_buku();  
    }
    public void set_buku(String j, String p){
        judul = j;
        pengarang = p;
        System.out.println(judul+" "+pengarang);
    }
}
public class Main {
    public static void main(String[] args) {
        mahasiswa si = new mahasiswa(123,"Ruby");
        buku bp = new buku("Java","Arie");
        si.pinjam_buku(bp);
        buku pti = new buku("Pengantar IT","Rudi");
        si.pinjam_buku(pti);
        buku logika = new buku("Logika","Pulung");
        si.pinjam_buku(logika);
        buku komik = new buku("Naruto","One Piece");
        si.pinjam_buku(komik);
        si.daftar_buku();
        buku_sejarah bukuku = new buku_sejarah();
        bukuku.view_buku_sejarah();
        bukuku.set_buku("Sejarah Kita","Top Cerr");
    }

}




Output:



OUTPUT:


init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication21\build\classes
compile:
run:
Constructor mahasiswa Ruby
Constructor buku Java
Ruby pinjam buku Java karangan Arie
Constructor buku Pengantar IT
Ruby pinjam buku Pengantar IT karangan Rudi
Constructor buku Logika
Ruby pinjam buku Logika karangan Pulung
Constructor buku Naruto
Sudah Penuh!
Daftar Bukunya Ruby:
1. Java
2. Pengantar IT
3. Logika
Method ini milik class induk
Sejarah Kita Top Cerr
BUILD SUCCESSFUL (total time: 8 seconds)

1 komentar: