Anda di halaman 1dari 16

Program Studi Teknologi Informasi

Fakultas Sains dan Teknologi UIN Walisongo

Inheritance

Siti Nur’aini, M.Kom


Definisi Inheritance (1)
• Inheritance (Pewarisan) merupakan salah satu konsep dasar
OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu
entitas/obyek dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai
class turunan.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Definisi Inheritance (2)
• 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 apapun (atribut dan method)
yang dipunyai oleh parent class.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Definisi Inheritance (3)
• Karena suatu subclass dapat mewarisi apa-apa yang dipunyai
oleh parent class-nya, maka member dari suatu subclass
terdiri dari apapun yang ia punyai dan juga apapun yang ia
warisi dari class parent-nya.
• Kesimpulannya, bahwa suatu subclass adalah tidak lain hanya
memperluas (extend) parent class-nya.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Deklarasi inheritance (1)
• Dengan menambahkan kata kunci extends setelah deklarasi
nama class, kemudian diikuti dengan nama parent class-nya.
• Kata kunci extends tersebut memberitahu compiler Java
bahwa kita ingin melakukan perluasan class.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Deklarasi inheritance(2)
public class Sedan extends Mobil {

}

Artinya : class Sedan mewarisi Class


Mobil

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Kapan kita menerapkan inheritance?
• Saat kita jumpai ada suatu class yang dapat diperluas dari
class lain.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Contoh Inheritance (1)
public class Pegawai {
public String nama;
public double gaji;
}
public class Manajer {
public String nama;
public double gaji;
public String departemen;
}
Program Studi Teknologi Informasi
Fakultas Sains dan Teknologi UIN Walisongo
Contoh Inheritance (2)
• Dari 2 buah class diatas, kita lihat class Manajer mempunyai atribut
yang identik (sama) dengan class Pegawai, hanya saja ada
tambahan atribut departemen.
• Sebenarnya yang terjadi disana adalah class Manajer merupakan
perluasan dari class Pegawai dengan tambahan atribut
departemen.
• Disini perlu memakai konsep inheritance, sehingga class Manajer
dapat kita tuliskan seperti berikut

Public class Manajer extends Pegawai {


public String departemen;
}

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Pengaksesan member yang dideklarasikan di
parent class dari subclass
• Pengaksesan member (atribut dan method) yang ada di
parent class dari subclass-nya tidak berbeda dengan
pengaksesan member subclass itu sendiri.
• Misalnya di class Manajer kita ingin mengakses atribut nama
melalui sebuah function member IsiData(), sekaligus kita juga
ingin mengakses atribut departemen di class Manajer.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Contoh
public class Manajer extends Pegawai {
public String departemen;

public void IsiData(String n, String d) {


nama=n;
departemen=d;
}
}
Program Studi Teknologi Informasi
Fakultas Sains dan Teknologi UIN Walisongo
Kontrol Pengaksesan
• Dalam dunia riil, suatu entitas induk bisa saja tidak
mewariskan sebagian dari apa-apa yang ia punyai kepada
entitas turunan karena sesuatu hal.
• Demikian juga dengan konsep inheritance dalam OOP.
• Suatu parent class dapat tidak mewariskan sebagian member-
nya kepada subclass-nya.
• Sebagai contoh, coba memodifikasi class Pegawai agar atribut
nama tidak dapat diwariskan kepada class manager.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Konstruktor tidak diwariskan (1)
• Konstruktor dari parent class tidak dapat diwariskan ke subclass-
nya.
• Konsekuensinya, setiap kali kita membuat suatu subclass, maka kita
harus memanggil konstruktor parent class di konstruktor subclass.
• Pemanggilan konstruktor parent harus dilakukan pada baris
pertama dari konstruktor subclass.
• Jika kita tidak mendeklarasikannya secara eksplisit, maka kompiler
Java akan menambahkan deklarasi pemanggilan konstruktor
parent class di konstruktor subclass.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Konstruktor tidak diwariskan (2)
• 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 compiler.

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Contoh (1)
• Pada saat program tersebut dikompilasi, maka kompiler Java
akan menambahkan :
• konstruktor class Parent
• konstruktor class Child
• pemanggilan konstruktor class Parent di konstruktor class
Child

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo
Contoh (2)

Program Studi Teknologi Informasi


Fakultas Sains dan Teknologi UIN Walisongo

Anda mungkin juga menyukai