Pemrograman Berorientasi Objek INHERITANCE Oleh : Sri Herawati, S.Kom D3 MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
Sub Topik Inheritance (Pewarisan) Kata Kunci This Overriding
Inheritance Inheritance merupakan salah satu dari 3 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.
Inheritance Suatu class yang mempunyai class turunan dinamakan parent class atau base class atau superclass Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Misal : kelas B adalah kelas anak dari kelas A, maka sifat – sifat dari kelas A otomatis akan dimiliki juga oleh kelas B.
Inheritance 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. Bentuk : class kelasturunan extends kelasparent { tubuhkelas }
Inheritance Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain. Konsep inheritance yang ada di Java adalah Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class.
Contoh : parent class class Alpha{ private int a = 5; public void info(){ System.out.println("a= "+a); System.out.println("Dipanggil pada "+ this.getClass().getName()); } Ket : this.getClass().getName() utk memperoleh nama kelas
Contoh : child class class Bravo extends Alpha { public static void main(String[] args){ Bravo obj= new Bravo(); obj.info(); }
Hasil :
Penentu akses protected protected berguna utk mengatur agar suatu variabel instan atau metode yg terdapat pada sebuah kelas dpt diakses pada kelas itu sendiri dan sub kelas.
Contoh :parent class class Alpha{ private int a = 5; protected int b = 7; public void info(){ System.out.println("Dipanggil pada "+ this.getClass().getName()); System.out.println("a= "+ a); System.out.println("b= "+ b); }
Contoh : child class class Delta extends Alpha { private int c = 9; public void info(){ System.out.println("Dipanggil pada " + this.getClass().getName()); System.out.println("b = " + b); System.out.println("c = " + c); }
Memanggil parent dan child class class PenentuProtect { public static void main(String[] args){ Alpha objx = new Alpha(); objx.info(); Delta objy = new Delta(); objy.info(); }
Metode superkelas Cara untuk memanggil metode superkelas dari subkelas dgn kata kunci super yang berarti superkelas.
Contoh : class Echo extends Alpha { private int c = 9; public void info(){ super.info(); System.out.println("c = " + c); }
class superkelas { public static void main(String[] args) Echo obj = new Echo(); obj.info(); }
Kata kunci this this digunakan pada pembuatan class yang menyatakan objek sekarang.
Overriding Data dan Method Overriding kemampuan kelas anak untuk memodifikasi data dan method dari kelas induknya. Overriding redefinisi data dan method. Proses ini akan mengubah data dan method dari keduanya, kelas induk dan kelas anaknya. Sebelum melakukan overriding perlu diperhatikan bagaimana tingkat aksesibilitas data dan method tersebut. Alasan melakukan overriding : Mendefinisikan kembali method kelas induknya secara total Menambahkan behaviour tertentu pada method kelas induknya
Contoh : Class Hewan class Hewan { private String jenis; private int kaki; Hewan (){ } Hewan (String jenis, int kaki){ this.jenis = jenis; this.kaki = kaki; public void bersuara() { System.out.print("suara hewan "+jenis+" berkaki "+kaki);
Contoh : Class sapi class sapi extends Hewan { sapi() { super(); } public void bersuara() { //overriding method System.out.println("mouwww...");
Contoh : Class Kucing class Kucing extends Hewan { Kucing(String jenis, int kaki) { super(jenis, kaki); } public void bersuara() { //overriding method super.bersuara(); System.out.println(" miaowwww....");
Contoh : Class DemoPoli class DemoPoli { public static void main(String args[]) { sapi perah = new sapi(); Kucing tom = new Kucing("Kucing", 4); perah.bersuara(); tom.bersuara(); }