/**
*
*
*/
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 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(); //method milik induknya
}
public void set_buku(String j, String p){
judul = j;
pengarang = p;
System.out.println(judul+" "+pengarang);
}
}
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
mahasiswa si = new mahasiswa(123,"Faiz");
buku bp = new buku("Java","Bejo");
si.pinjam_buku(bp);
buku pti = new buku("Pengantar IT","Jogiyanto");
si.pinjam_buku(pti);
buku logika = new buku("Logika","Joko");
si.pinjam_buku(logika);
buku komik = new buku("Doraemon","Akimoto");
si.pinjam_buku(komik);
si.daftar_buku();
buku_sejarah bukuku = new buku_sejarah();
bukuku.view_buku_sejarah();
bukuku.set_buku("Sejarah Jawa","Raden Adi");
}

}

sumber : author bluejundi