0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan

Inheritance

Inheritance memungkinkan objek-objek turunan mewarisi sifat-sifat dari objek induknya. Kelas turunan dapat memperluas dan menimpa metode kelas induk. Kelas turunan juga dapat mengakses dan menimpa atribut kelas induk menggunakan kata kunci super.

Diunggah oleh

Irma Nur Ardiyanti
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan

Inheritance

Inheritance memungkinkan objek-objek turunan mewarisi sifat-sifat dari objek induknya. Kelas turunan dapat memperluas dan menimpa metode kelas induk. Kelas turunan juga dapat mengakses dan menimpa atribut kelas induk menggunakan kata kunci super.

Diunggah oleh

Irma Nur Ardiyanti
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 28

Inheritance

DEFINISI

● Inheritance = Pewarisan
● Contoh dalam dunia nyata, anak mewarisi
sifat orang tuanya
● Suatu entitas/objek dapat mempunyai
entitas/objek turunan
DEFINISI

● Suatu class yang mempunyai class


turunan dinamakan parent class atau
base class.
● Sedangkan class turunan itu sendiri
seringkali disebut subclass atau child
class.
● Suatu subclass dapat mewarisi apa-apa
yang dipunyai oleh parent class.
DEFINISI
● Karena suatu subclass dapat
mewarisi apa-apa yang dipunyai oleh
parent class-nya, maka member dari
suatu subclass adalah terdiri dari
apa-apa yang ia punyai dan juga
apa-apa yang ia warisi dari class
parent-nya.
● Kesimpulannya, boleh dikatakan
bahwa suatu subclass adalah tidak
lain hanya memperluas(extend)
parent class-nya.
DEKLARASI
● 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
public class B extends A {
...
}
KAPAN MENGGUNAKAN
INHERITANCE?

● Kita baru perlu menerapkan inheritance


pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain.
● Siapa yang menentukan ?
● Kalian sendiri
SINGLE INHERITANCE

● Java memperkenankan adanya single


inheritance.
● Konsep single inheritance adalah
hanya satu kelas dasar/base class dan
satu kelas turunan/sub class.
PERHATIKAN 2 CLASS
BERIKUT
● Class Pegawai
public class Pegawai {
public String nama;
public double gaji;
}

● Class Manager
public class Manajer {
public String nama;
public double gaji;
public String departemen;
}
PENGGUNAAN INHERITANCE
public class Manajer extends Pegawai {
public String departemen;
}
CONTOH

induk

anak
public class Utama {

public class Induk { public static void main(String[] args) {


Anak obj = new Anak();
void dariInduk() { obj.dariInduk();
System.out.println("ini dari obj.dariAnak();
induk."); }
} /*
*
} * pada method main kita memanggil
method dariInduk() yang sama sekali tidak
diciptakan pada kelas anak. tapi karena
kelas anak adalah turunan dari kelas induk
sehingga method dariInduk() dapat di
public class Anak extends Induk { aksess oleh kelas anak.
void dariAnak() { */
System.out.println("ini dari
anak."); }
}
}

CONTOH
OVERRIDING

•Subclass yang berusaha memodifikasi tingkah laku yang


diwarisi dari superclass.
•Tujuan: subclass memiliki tingkah laku yang lebih spesifik.
•Dilakukan dengan cara mendeklarasikan kembali method
milik parent class di subclass.
OVERRIDING

Deklarasi method pada subclass harus sama dengan yang terdapat di


super class. Kesamaan pada:


●Nama
●Return type

●Daftar parameter (jumlah, tipe, dan urutan)

●Method pada parent class disebut overriden method


●Method pada subclass disebut overriding method.
CONTOH OVERRIDING
public class Animal {
public void SetVoice() {
System.out.println(“suara binatang”);
}
}

public class Dog extends Animal {


public void SetVoice() {
System.out.println(“Hug hug”);
}
}
ATURAN OVERRIDING
●Mode akses overriding method harus sama atau lebih luas
dari pada overriden method.
●Subclass hanya boleh meng-override method superclass

satu kali saja, tidak boleh ada lebih dari satu method pada
kelas yang sama yang sama persis.
public class Kendaraan {
//overriden method
void bergerak(){
System.out.println("Kendaraan bergerak!");
}

public class Mobil extends Kendaraan {


//overriding method access modifiernya lebih ketat
private void bergerak(){
System.out.println("Mobil bergerak");
}

ERROR
KATA KUNCI SUPER
● Kata kunci super dipakai untuk merujuk pada
member dari parent class.
● Sebagaimana kata kunci this yang dipakai untuk
merujuk pada member dari class itu sendiri.
● Format penulisannya adalah sebagai berikut :
super.data_member

–merujuk pada data member pada parent class


super.function_member()

–merujuk pada function member pada parent class


super()

–merujuk pada konstruktor pada parent class


IMPLEMENTASI
● Apakah yang di hasilkan dari program berikut ?
public class NilaiX {
public static void main(String args[])
class Parent { {
public int x = 5; Child tes = new Child();
} tes.Info(20);
}
}
class Child extends Parent {
public int x = 10;
public void Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Nilai x di class Child = " + this.x);
System.out.println("Nilai x di class Parent = " + super.x);
}
}
PEWARISAN
KONSTRUKTOR
● Sebelum subclass menjalankan
konstruktornya sendiri, subclass akan
menjalankan constructor superclass
terlebih dahulu.
● Hal ini terjadi karena secara implisit
pada constructor subclass
ditambahkan pemanggilan super()
yang bertujuan memanggil constructor
superclass oleh kompiler.
CONTOH
public class Binatang {
public Binatang ()
{
System.out.println("ini konstruktor binatang");
}
}

public class Kuda extends Binatang {


public Kuda ()
{
System.out.println("ini konstruktor kuda");
}
}
CONTOH
● Sehingga menjadi seperti berikut :
public class UtamaHewan {
public static void main(String[] args) {
Kuda poni = new Kuda();
}
}
PEWARISAN
KONSTRUKTOR
● Jika constructor tidak dideklarasikan
oleh kelas superclass maka tidak akan
nampak ketika subclass
mendeklarasikan object. Namun
secara default tetap akan dipanggil
PEWARISAN
CONSTRUCTOR
● Bagaimana jika konstruktor memiliki parameter?
● Sama dengan sebelumnya, pada konstruktor
subclass harus dipanggil konstruktor parent class
terlebih dahulu
● Namun jika superclass konstruktornya memiliki
parameter sedangkan subclass tidak
mendeklarasikan constructor maka di sini akan
muncul error. Karena java tidak bisa membuatkan
constructor default bagi subclass karena parent
class nya memiliki parameter
public class Binatang {
String nama;
public Binatang (String nama)
{
this.nama = nama;
}
}

public class Kuda extends Binatang {

// tidak ada constructor


}

ERROR
TUGAS 4
1. Buat program pada diagram di bawah ini. Dikumpulkan
program beserta screenshoot hasilnya
DIAGRAM 1

Persegi
Panjang

Balok
Panggil di kelas UtamaBangunan
DIAGRAM 2
DIAGRAM 3

Anda mungkin juga menyukai