Staffsite STMIK PPKIA Pradnya Paramita

PEWARISAN
Pertemuan 7

Definisi Pewarisan
Salah satu ciri pemrograman berorientasi

objek.
Suatu kelas dapat diturunkan lagi menjadi
kelas-kelas baru lainnya sehingga dapat
membentuk sebuah hirarki.
Kelas turunan akan mewarisi sifat-sifat yang
terdapat pada kelas induknya.

Superclass dan Subclass
Kelas induk yang diturunkan disebut dengan

superclass
Kelas baru hasil turunan disebut dengan
subclass
Selain mewarisi sifat-sifat dari superclass,
subclass dapat memiliki sifat-sifat spesifik.


Contoh Pewarisan
Binatang
Herbivora

Membuat Subclass
Java menyediakan kata kunci “extends” yang

digunakan untuk melakukan proses
penurunan terhadap suatu kelas.
Bentuk umum dari penggunaan “extends”
sebagai berikut:
class nama-subclass extends nama-superclass
{
//badan kelas
}

class A {
private int a;
public void setA(int nilai) {

a = nilai;
}
public int getA() {
return a;
}
}
//membuat kelas turunan (subclass) dari kelas A
class B extends A {
private int b;
public void setB(int nilai) {
b = nilai;
}
public int getB() {
return b;
}
}
//membuat kelas turunan (subclass) dari kelas B
class C extends B {
private int c;
public void setC(int nilai) {

c = nilai;
}
public int getC() {
return c;
}
}

Kata Kunci “SUPER”
Antara subclass dan subclass terakang

memiliki data dan parameter yang sama, hal
ini bisa menyebabkan redudansi
Untuk menghindari redudansi, dapat
digunakan kata kunci “super”
Contoh:
KotakPejal (int p, int l, int t, int v) {
super(p, l, t);
berat = b;
}


Penggunaan super
Dapat memanggil parameter (seluruh data)

yang terdapat pada kelas induk.
Dapat memanggil sebagian data atau method
yang merupakan anggota dari kelas Induk.
Dalam contructor kelas turunan, super() harus
ditempatkan pada bagian awal (baris
pertama)

class Kotak {
protected double panjang;
protected double lebar;
protected double tinggi;
//default contructor
Kotak() {
panjang = lebar = tinggi = 0;
}
Kotak(int p, int l, int t) {
panjang = p;

lebar = l;
tinggi = t;
}
public double hitungVolume() {
return (panjang * lebar * tinggi);
}
}
class KotakPejal extends Kotak {
private double berat;
KotakPejal(int p, int l, int t, int b) {
super(p, l, t);//memanggil contructor kelas Kotak
berat = b;
}
public double getBerat() {
return berat;
}
}
class DemoSuper1 {
public static void main(String[] args) {


class A {
protected int a;
}
class B extends A {
private int a;//akan menimpa nilai a hasil turunan dari kelas A
//contructor
B(int nilai1, int nilai2) {
super.a = nilai1;//a di dalam kelas A
a = nilai2;//a di dalam kelas B
}
public void tampilkanNilai() {
System.out.println("Nilai a di dalam kelas A : " + super.a);
System.out.println("Nilai a di dalam kelas A : " + a);
}
}
class DemoSuper3 {
public static void main(String[] orgs) {
B obj = new B(121, 212);
obj.tampilkanNilai();
}

}

Polimorfisme
Kemampuan suatu objek untuk mengungkap

banyak hal melalui satu cara yang sama
Dalam polimorfisme, kelas induk
mendefinisikan sebuah method general
(bersifat umum) untuk semua kelas
turunannya
Kelas-kelas turunanya dapat memperbarui
implementasi dari mthod tersebut secara
lebih spesifik sesuai dengan karakteristik
masing-masing kelas

class Bentuk {
public double luas() {
System.out.println("tidak didefinisikan");
return 0;
}

}
class PersegiPanjang extends Bentuk {
private double panjang;
private double lebar;
PersegiPanjang(int p, int l) {
panjang = p;
lebar = l;
}
public double luas() {
System.out.println("dalam objek persegi panjang: ");
return (panjang * lebar);
}
}
class BujurSangkar extends Bentuk {
private double sisi;
BujurSangkar(int s) {
sisi = s;
}
public double luas() {
System.out.println(":dalam objek bujur sangkar: ");

return (sisi * sisi);
}
}
class demoPolimorfisme2 {