• 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
atau bisa diartikan inheritance atau pewarisan dalam bahasa java adalah suatu objek atau entitas yang dapat mempunyai objek turunan. Dengan konsep inheritance sebuah class dapat mempunyai class turunan, dan sebuah class dengan memiliki class turunan disebut parent class atau base class, sementara untuk class turunan disebut child class atau yang lebih dikenal sebagai sub class. Suatu sub class dapat mewarisi apa2 saja yang dipunyai oleh parent class, dan isi dari subclass sendiri adalah apa-apa yang ia punyai dan apa-apa yang diwarisi oleh class parentnya, dapat disimpulkan sebuah subclass boleh dikatakan hanya memperluas parent classnya.
contoh program :
- persegi panjang
class PersegiPanjang
{
double panjang;
double lebar;
{
double panjang;
double lebar;
PersegiPanjang(double panjang,
double lebar) {
this.panjang = panjang;
this.lebar = lebar;
}
PersegiPanjang()
{
throw new UnsupportedOperationException(“Not yet implemented”);
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}
this.panjang = panjang;
this.lebar = lebar;
}
PersegiPanjang()
{
throw new UnsupportedOperationException(“Not yet implemented”);
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}
- Balok
class Balok extends PersegiPanjang{
double tinggi;
double tinggi;
Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}
super(panjang, lebar);
this.tinggi = tinggi;
}
@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
- Hitung
class Hitung {
public static void main(String[] args) {
Balok b1 = new Balok(30, 40, 10);
PersegiPanjang p1 = new PersegiPanjang(30,40);
System.out.println(“panjang = ” +b1.panjang);
System.out.println(“lebar = ” +b1.lebar);
System.out.println(“tinggi = ” +b1.tinggi);
System.out.println(“luas = ” +p1.hitungLuas());
System.out.println(“volum = ” +b1.hitungLuas());
}
}
public static void main(String[] args) {
Balok b1 = new Balok(30, 40, 10);
PersegiPanjang p1 = new PersegiPanjang(30,40);
System.out.println(“panjang = ” +b1.panjang);
System.out.println(“lebar = ” +b1.lebar);
System.out.println(“tinggi = ” +b1.tinggi);
System.out.println(“luas = ” +p1.hitungLuas());
System.out.println(“volum = ” +b1.hitungLuas());
}
}
POLYMORPHISME
Polymorphism,
suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari
hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon
terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat
berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu
method, yang berasal dari parent class (super class) dimana object tersebut
diturunkan, sehingga memiliki kelakuan yang berbeda.
Ada dua jenis polymorphisme yaitu Override dan Overload.
Di dalam java dikatakan bersifat override ketika terdapat method dengan nama,
parameter dan tipe data yang sama persis di dalam kelas induk maupun kelas turunannya.
Contoh
:
// kelas a sebagai
superclass
class a
{
public void a()
{
System.out.println("A");
}
}
// kelas b sebagai
subclass
class b extends a
{
public void a()
{
System.out.println("B");
}
}
// class utama untuk
eksekutor kelas
// dilengkapi dengan
method main
public class utama
{
public
static void main(String[] args)
{
a a=new a();
b b=new b();
a.a();
a=b;
a.a();
}
}
Overload Polymophisme memiliki perbedaan pada method yang ada.
Pada overload polymorphisme terdapat lebih dari satu method dengan nama yang
sama tetapi memiliki jumlah parameter maupun tipe data yang berbeda.
Contoh :
// kelas a sebagai
superclass
class a
{
public int ab;
public void a()
{
ab=0;
System.out.println("A");
}
public void a(int ax)
{
ab=ax;
System.out.println("A");
}
}
// kelas b sebagai
subclass
class b extends a
{
public void a()
{
ab=0;
System.out.println("B");
}
public void a(int ax)
{
ab=ax;
System.out.println("B");
}
}
// class utama untuk
eksekutor kelas
// dilengkapi dengan
method main
public class utama
{
public
static void main(String[] args)
{
a a=new a();
b b=new b();
a.a();
a.a(10);
a=b;
a.a();
a.a(20);
}
}