Inheritance adalah turunan atau pewarisan suatu class
ke class baru dengan mewakili semua function yang ada di class utama
(parent class). Inheritance sering sekali digunakan di dalam promgraman
berorientasi objek atau OOP. Dengan kata lain, class utama (parent
class) dengan classes turunannya berhubungan satu sama lain.
Contoh :
#abstrack
package latihan;
public abstract class Bentuk2D { //abstract class Bentuk2D
// state
int panjang = 1;
int lebar = 1;
int alas = 3;
int tinggi = 5;
double phi = 3.14;
int r = 2;
// behaviour
public abstract double hitungLuas();
public abstract String getBentuk();
}
#class utama
package latihan2;
* @author hendrik
*/
public class LatihanBentuk2D { // class utama LatihanBentuk2D
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
BujurSangkar A = new BujurSangkar();
A.setSisi(20);
System.out.println("Luas " + A.getBentuk() + " = " + A.hitungLuas());
Kubus B = new Kubus();
B.setSisi(10);
System.out.println("Luas " + A.getBentuk2() + " = " + B.hitungVolume());
persegipanjang C = new persegipanjang();
C.hitungLuaspersegi();
System.out.println("Luas " + A.getBentuk3() + " = " + C.hitungLuaspersegi());
segitiga D = new segitiga();
D.hitungLuassegitiga();
System.out.println("Luas " + A.getBentuk4() + " = " + D.hitungLuassegitiga());
lingkaran E = new lingkaran();
E.hitungLuaslingkaran();
System.out.println("Luas " + A.getBentuk5() + " = " + E.hitungLuaslingkaran());
}
}
#Turunan 1
package latihan;
* @author hendrik
*/
public class BujurSangkar extends Bentuk2D {
public void setSisi(int sisi) {
panjang = sisi;
}
@Override
public double hitungLuas() {
return panjang*panjang;
}
@Override
public String getBentuk() {
return "Bujur Sangkar";
}
public String getBentuk2() {
return "kubus";
}
public String getBentuk3() {
return "Persegi panjang";
}
public String getBentuk4() {
return "segitiga";
}
public String getBentuk5() {
return "lingkaran";
}
}
#Turunan 2
package latihan;
* @author hendrik
*/
public class Kubus extends BujurSangkar {
public double hitungVolume() {
// 1. return panjang*panjang*panjang;
return hitungLuas() * panjang;
}
}
#Turunan 3
package latihan;
/**
*
* @author hendrik
*/
public class persegipanjang extends BujurSangkar {
public double hitungLuaspersegi() {
// 1. return panjang*panjang*panjang;
return panjang*lebar;
}
}
#Turunan 4
package latihan;
/**
*
* @author hendrik
*/
public class segitiga extends BujurSangkar {
public double hitungLuassegitiga() {
// 1. return panjang*panjang*panjang;
return ((alas*tinggi)/2);
}
}
#Turunan5
package latihan;
/**
*
* @author hendrik
*/
public class lingkaran extends BujurSangkar {
public double hitungLuaslingkaran() {
// 1. return panjang*panjang*panjang;
return (phi*(r*r));
}
}
Hasil run dari class utama