Inheritance dan Contohnya


Pengertian Inheritance (Pewarisan)

Inheritance (penurunan sifat / pewarisan), ini merupakan ciri khas dari OOP yang tidak terdapat pada pemrograman prosedural gaya lama. Dalam hal ini, inheritance bertujuan membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang sudah ada sebelumnya (pewarisan). Obyek turunan dapat digunakan membetuk obyek turunan lagi dan seterusnya. Setiap perubahan pada obyek induk, juga akan mengubah obyek turunannya. Susunan obyek induk dengan obyek turunannya disebut dengan hirarki obyek.

Pada dasarnya, kita melakukan pewarisan untuk membuat kelas baru (class turunan /subclass) yang masih memiliki sifat atau spesifikasi dari class dari mana ia turunkan (superclass). Untuk melakukan ini java telah keyword extends yang dapat dipakai pada waktu kita mendeklarasikan class.

Beberapa aturan tentang pewarisan yang perlu anda perhatikan:

  1.       Java tidak mengizinkan pewarisan berganda, yaitu membuat subclass yang diturunkan dari beberapa superclass sekaligus. Contoh : class Z hendak diturunkan dari class X dan juga sekaligus dari kelas Y. hal yang memungkinkan dalam C++ tetapi tidak dalam java.
  2.     Suatu subclass pada dasarnya juga adalah class biasa, maka anda tetap dapat melakukan pewarisan pada subclass ini.
Berikut contoh program dari Inheritance :



import java.util.*;
import java.text.*;

public class employee {
      private String name;
      private double salary;
      private int lama;
      Date awalDate;
      public employee (String n, double s, Date awal) {
            name=n;
            salary=s;
            awalDate=awal;
      }
      public String getName() {
            return name;
      }
      public double getSalary() {
            return salary;
      }
      public void cetak () {
            Date today = new Date();
            SimpleDateFormat format= new SimpleDateFormat("dd MMMM yyyy");
            String d = format.format(awalDate);
            System.out.println(" Nama : " + getName());
            System.out.println(" Tanggal masuk : " + d);
            System.out.println (" Gaji Awal : Rp " +getSalary());
      }
      public double gajiNaik() {
            return salary;
      }
      public void cetakSalary() {
            System.out.println (" Gaji Sekarang : "+gajiNaik());
      }
      public void setWaktu () {
            Date today = new Date();;
      if (today.getMonth()
      lama=0;}
      else{
            lama= today.getYear() - awalDate.getYear();}
            }
            public int getWaktu () {
                  return lama;
            }
}

class programer extends employee {
     
      public programer (String n, double s, Date awal) {
            super (n,s,awal);
      }
            public double gajiNaik () {
                  if (super.getWaktu()<=10 && super.getWaktu()>=1)
                  return super.getSalary()*(1+0.01*super.getWaktu());
                  else
                  return super.getSalary()*(1+0.02*super.getWaktu());
            }
           
 }
Program untuk menjalankan (Main Method)


import java.util.*;

public class employeeDemo {
public static void main (String [] args) {
    
     employee[] staf =new programer[3];
     staf[0] = new programer("Dindadinho",1000000,new Date ("11 february 1992"));
     staf[1] = new programer("Larry Page",200000,new Date ("01 June 2011"));
     staf[2] = new programer("Bill Gates",4000000,new Date("03 July 2005"));
     System.out.println ("Daftar Gaji Pegawai PT.GS");
     for (int i=0;i  {
    
 System.out.println("Staff ke " + (i+1) + " : ");
 staf[i].cetak();
 staf[i].setWaktu();
 System.out.println (" lama kerja : "+staf[i].getWaktu()+ " tahun");
 staf[i].gajiNaik();
 staf[i].cetakSalary();
     }   
  }
}


SHARE THIS

Author:

Previous Post
First