Inheritance
Inheritance
(Pewaris) mengadopsi suatu entitas atau objek yang mempunyai turunan, pada
program biasa disebut dengan class turunan. Suatu class yang mempunyai turunan
dinamakan parent class, sedangkan class turunan disebut dengan subclass. Subclass
memarisi apa yang ada pada parentclass, subclass memperluan (extend) parent
class nya. Sub – sub class lebih spesifik dari pada parent class.
Inheritance
diterapkan jika terdapat suatu class yang dapat diperluas dari class lain. Deklarasi
pada inheritance dengan menambahkan kata kunci extends setelah deklarasi
namaclass, kemudian diikuti nama parent class, kata kunci extend tersebut
memberitahukan compiler java bahwa kita memperluas class.
Public class Ayam extends Ternak {
….
}
Compiler java akan
membacanya sebgai subclass dari object.
Public class Ayam extends Object
Misal :
Terdapat public
class pegawai(Public String nama;public double gaji;} dan
Public class
Manajer (public String nama; public double gaji; public department;}
Class Manajer
memiliki member yang sama dengan class pegawai, hanya saja pada manajer
dtambhkan member department, Class menejer merupakan peluasan dari class pegai
dengan tambahan member department.
Public class
Manajer extends Pegawai (Public string department;)
Beberapa istilah
inheritance :
Extends : Mendifinisikan class yang
menjadi subclass
Superclass : Menunjukan hirarki class yang
berarti class dasar dari subclass
Subclass : Class turunan secara hirarki
dari superclass
Syper : Memanggil konstruktor dari
superclass menjadi variable yang mengacu pda superclass
Contoh Inheritance
:
Class Kotak{
Double s1;
Double s2;
Double s3;
Kotak()
{
Kotak (double 1,double2,double3){
S1=1;s2=2;s3=3}
Public void cetakkotak(){
System.out.println(“Isi kotak : “ +s1+s2+s2);}
}
public class
Kotakku extends Kotak{
double s1;
Kotakku(double 1, double 2, double 3, double plus)
{
super(1,2,3);
s1=plus;
}
public static void main(String[] args) {
Kotakku Kotaksaya= new Kotakku(10,5,15,30);
Kotaksaya.CetakKotak();
System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.s1);
System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.s2);
System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.s3);
}
}
Polymorphism
Polymorphism dapat
berarti banyak bentuk, suatu aksi yang memungkinkan pemrograman menyampaikan
pesan tertentu keluar dari hirarki obyek, dimana obyek yang berbeda memberikan
tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing objek.
Polymorphism dapat disamakan dengan method Overloading, dimana dalam sebuah
class terdapat method dengan nama yang sama.
Contoh Polymorphism
Diberikan sbuah
parent class Bentuk, serta subclass, lingkaran, persegi, dan segitiga.
Polymorphism memungkinkan untuk mendefinisikan method getLuas() pada setiap
class, apapun object yang dibuat getLuas() akan memberikan hasil yang benar.
Contoh lain :
Diberikan parent class Person dan child class Student, kemudian subclass yang
lain adalah Employee.
Hierarki class-nya adalah sbb:
Method getName pada superclass
person yang dioveride pada subclass Student dan Employee.
public class
Student {
public String getName(){
System.out.println(“Student
Name:” + name);
return name;
}
}
public class
Employee {
public String getName(){
System.out.println(“Employee
Name:” + name);
return name;
}
}
Pada javam sebuar reference
yg bertype superclass (Person) pada sebuah object subclass (Student).
public static main(
String[] args ) {
Student studentObject =
new Student();
Employee employeeObject
= new Employee();
Person ref = studentObject;
//Person merefer ke object dg
type student
String name = ref.getName();
//Memanggil getName() milik
obeject Student
Main method , saat
panggil getName dari object ref, method getName yang dipanggil adalah milik
object Student, jika assign variable ref ke object Employee, maka method
getName milik Employee yang dipanggil.
Tambahkan di main
method kode berikut
ref = employeeObject;
//Person ref merefer ke object
Employee
String temp = ref.getName();
//getName() milik Employee yang
dipanggil
System.out.println( temp );
Polymorhism dapat
melakukan passing sebuah reference sebagia parameter input sebuat method,
misalkan jika ditambahkan sebuah static method printInformation yang
menggunakan type Person sebagai parameter.
Keuntungan dari
Polymorphism adalah jika memerlukan menulis suatu code yang daoat dgunakan
berbagia jenis type, code hanya cukup berinteraksi dengan base class (parents)
dan dapat mengabaikan detail yang lebih spesifik yang berada pada subclass,
selain itu Polymorphism memudahkan penulisan program dan memudahkan pihak lain.
Subclass yang lain
dapat dubuat sebagai type baru dan object dari class baru ntersebut masih compatible
dengan kode yang sudah ada.