Kali ini saya akan meneruskan tulisan blog saya. Sebelumnya saya sudah menuliskan materi tentang Perbedaan pemrograman terstruktur dengan pemrograman berbasis objek dan serta penjelasan tentang Encapsulation atau sering kita sebut dengan metode pengkapsulan. Untuk sekarang saya akan melanjutkan materi tulisan saya tentang Pewarisan (Inheritance) dan Polimorfisme (Polymorphism) beserta dengan contoh-contohnya. Baik Para pembaca kita langsung saja ya ke materi selanjutnya........
A. Pewarisan ( Inheritance )
Pewarisan adalah memberikan atau mewariskan sesuatu kepada keturunan berikutnya. Misalnya, seorang anak pasti akan mewarisi beberapa sifat atau prilaku yang dimiliki oleh ibu atau bapaknya. Dalam konteks ini, suatu kelas dalam program dapat diturunkan menjadi kelas – kelas baru lainnya yang akan mewarisi beberapa sifat atau prilaku dari kelas induknya. Sebagai contoh, apabila anda memiliki kelas A dalam program yang anda buat, maka anda dapat membentuk kelas – kelas turunan dari kelas A tersebut (misalnya kelas B) yang mewarisi sifat- sifat yang terkandung dalam kelas A. Dalam proses pembuatan kelas turunan tersebut, anda dapat menambahkan sifat dan prilaku baru kedalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam terminologi Java, kelas induk dinamakan superclass dan kelas turunan disebut dengan Subclass. Untuk membuat kelas anak atau subclass berdasarkan kelas yang telah ada, anda dapat gunakan kata kunci extenddalam mendeklarasikan class. Sebuah kelas hanya dapat meng-extend satu kelas induk.
Keterangan : Extend Artinya Diturunkan
Contoh Program Inheritance :
Simpan Program dengan nama programinheritance.java
// membuat kelasA untuk dibuat sebagai SuperClass
import javax.swing.*;
class kelasA{
int x,y;
void tampilnilaixy(){
System.out.println("Nilai X : " + x + " nilai Y : " + y);
}
}
//kelasB adalah Extend(turunan) dari kelasA
class kelasB extends kelasA{
int z;
void tampilkanjumlah(){
System.out.println("\n");
System.out.println("jumlah x+y+z = "+(x+y+z));
System.out.println("\n");
}
}
//class programinheritance berikut adalah extends (turunan) dari kelasB
class programinheritance {
public static void main (String []args){
kelasA superClass = new kelasA();
kelasB subClass = new kelasB();
System.out.println("\n");
System.out.println("Program Inheritance ");
System.out.println("============================");
System.out.println("\n");
System.out.println("SuperClass adalah Kelas A");
superClass.x=50;
superClass.y=100;
superClass.tampilnilaixy();
System.out.println("\nSubClass adalah Kelas B");
subClass.x=2;
subClass.y=4;
subClass.tampilnilaixy();
// membuat inputan melalui keyboard dengan menggunakan JoptionPane
yang di deklarasikan pada import javax.swing.*; pada bagian atas.
String data1 = JOptionPane.showInputDialog("Masukkan Nilai Z : ");
subClass.z=Integer.parseInt(data1);
System.out.println ("Nilai Z yang Dimasukkan : "+subClass.z);
subClass.tampilkanjumlah();
}
}
Output Program
B. Polimorfisme ( Polymorphisme )
Polimorfisme adalah suatu kejadian ketika objek dapat mengungkap banyak hal melalui suatu cara yang sama. Secara harfiah, poli berarti “banyak” dan morph berarti “bentuk”. Jadi, polimorphisme berarti “mempunyai banyak bentuk”. Sebagai contoh, ada kelas A yang diturunkan menjadi kelas B,C, dan D. Dengan konsep Polimorfisme, anda dapat menjalankan method – method yang terdapat pada kelas B,C, dan D hanya dari objek yang diinstansiasi dengan kelas A. Polimorfisme memungkinkan anda mengenali kesamaam diantara kelas yang berbeda. Polimorfisme sering dinamakan dengan Dynamic binding, late binding, atau runtime binding.
Contoh Program Polymorphisme :
import java.*;
import java.io.*;
// membuat kelas untuk di jadikan bentuk objek dan sebagai superclass
class bentukwajah{
public String respons(){
return("perhatikan reaksi wajah saya\n");
}
}
// membuat kelas untuk di jadikan bentuk objek dan sebagai subclass dari kelas bentukwajah
class senyum extends bentukwajah{
public String respons(){
return (" senyum karena senang\n");
}
}
class tertawa extends bentukwajah{
public String respons(){
return (" tertawa karena gembira\n");
}
}
class marah extends bentukwajah{
public String respons(){
return (" marah karena kesal\n");
}
}
class sedih extends bentukwajah{
public String respons(){
return (" sedih karena kecewa\n");
}
}
// Program utama
class programpolimorpis{
// method main
public static void main (String []args){
System.out.println("\nprogram polimorpis");
System.out.println("----------------------------------------\n");
// membuat objek – objek raut (ekspresi) dari wajah
bentukwajah objbentuk = new bentukwajah();
senyum objsenyum = new senyum();
tertawa objtertawa = new tertawa();
marah objmarah = new marah();
sedih objsedih = new sedih();
// polimorpis dari bentuk wajah ada lima dimulai dari 0-4
bentukwajah [] bentuk=new bentukwajah[5];
bentuk[0]= objbentuk;
bentuk[1]= objsenyum;
bentuk[2]= objtertawa;
bentuk[3]= objmarah;
bentuk[4]= objsedih;
System.out.println("Bentuk [0]:"+bentuk[0].respons());
System.out.println("Bentuk [1]:"+bentuk[1].respons());
System.out.println("Bentuk [2]:"+bentuk[2].respons());
System.out.println("Bentuk [3]:"+bentuk[3].respons());
System.out.println("Bentuk [4]:"+bentuk[4].respons());
}
}
Output Program