Home > Java > Inheritance dalam Java

Inheritance dalam Java

Inheritance dalam java
Salah satu bagian penting dalam object oriented programming adalah inheritance / pewarisan. Inheritance adalah proses pewarisan data dan method dari suatu class kepada class yang lain. Secara default inheritance bersifat menyeluruh sehingga semua data dan method diturunkan kepada class yang baru. Kelas yang mewariskan disebut dengan super class sedangkan class turunan disebut dengan sub class.
Keuntungan dari inheritance
• Bersifat reusable. Bayangkan bila anda perlu membuat beberapa class yang mempunyai sifat dasar dan basis class yang sama, dan pada masing masing class tersebut ditambahkan data dan method yang unique. Tanpa inheritance anda harus menyalin semua data dan method dari suatu class. Hal tersebut mungkin masih bisa dilakukan jika basis class anda definisikan sendiri. Namun bagaiman jika anda ingin menggunakan method dari class standard API. Saya rasa itu tidak mungkin.
• Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Jika anda ingin melakukan modifikasi suatu data atau method pada semua sub class anda tidak perlu melakukan perubahan pada masing masing sub class. Modifikasi cukup dilakukan pada super class.

Dalam inheritance dikenal dengan istilah overriding. Overidding adalah kemampuan sub class untuk melakukan modifikasi data dan method dari super class. Sebelum anda melakukan overidding terhadap method atau data dari class induk, anda harus memperhatikan aksesibelitas dari data dan method dari super class.[ overidding hanya bisa dilakukan untuk data dan method yang memiliki modifier default, public dan protected.]

Note.

  • Untuk melakukan inheritance digunakan keyword extends
  • Dalam java hanya mendukung single inheritance
  • data dengan modifier private tidak diwariskan ke sub class
  • constructor super class tidak diwariskan ke sub class

berikut ini contoh dari inheritance. semoga bermanfaat

Employee.java

public class Employee {
public String name;
public double salary;
public Date birthDate;

public  Employee(String nameEmployee, double salaryEmployee, Date dateOfBirth )
{
name = nameEmployee;
salary = salaryEmployee;
birthDate = dateOfBirth;

}

public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getDate()
{
return birthDate;
}

public String toString()
{
return String.format( “%s, %s %s”,
name, salary, birthDate );
}

}

Manager.java

public class Manager extends Employee
{
private String jobDiscription;
private String jobPosition;
private double salaryBonus;

public Manager(String nameEmployee, double salaryEmployee, Date dateOfBirth)
{
super(nameEmployee, salaryEmployee, dateOfBirth);

}
public void setJobDiscription(String job)
{
jobDiscription = job;
}
public String getJobDiscription()
{
return jobDiscription;
}
public void setPosition(String position)
{
jobPosition = position;
}
public String getJobPosition()
{
return jobPosition;
}

public double getSalaryBonus()
{
salaryBonus=(salary + 1000) ;
return salaryBonus;
}
@Override
public String toString()
{
return String.format( “%s, %s %s “,
name, salary, birthDate );

}
}

Date.java

public class Date {
private int month;
private int day;
private int year;

public Date( int theMonth, int theDay, int theYear)
{
month = checkMonth( theMonth);
day = checkDay(theDay);
year = theYear;

}
private int checkMonth(int testMonth){
if ( testMonth>0 && testMonth <=12)
return testMonth;
else {
System.out.printf(“invalid month (%d) set to 1.”,testMonth);
return 1;
}
}
private int checkDay(int testDay)
{
int daysPerMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ( testDay >0 && testDay < daysPerMonth[month])
return testDay;
if ( month ==2 && testDay ==29 && (year % 400 ==0 || (year%4 ==0 && year %100 != 0)))
return testDay;
System.out.printf(“invalid day (%d) ser to 1.”, testDay);
return 1;
}
@Override
public String toString()
{
return String.format( “%d/%d/%d”, month, day, year );
}

}

main.java

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Date birth = new Date(5,25,1988);
Employee firstEmployee = new Employee(“Ren”,2500,birth);
System.out.println(firstEmployee);
Manager firstManager = new Manager( “RenA”, 3500,birth);
firstManager.setJobDiscription(“do something”);
firstManager.setPosition(“some position”);
System.out.println(firstManager);
System.out.println(“Job Discription”+ firstManager.getJobDiscription());
System.out.println(“Job Position”+firstManager.getJobPosition());
System.out.println(“Bonus Salary”+firstManager.getSalaryBonus());

}
}

  1. No comments yet.
  1. April 19, 2012 at 19:14

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: