Langsung ke konten utama

Pengertian dan contoh detail tentang inheritance, Enkapsulasi dan Polymorphism serta overriding dan overloading pada Pemrograman Berorientasi Objek.


INHERITANCE



Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas, hanya kelas protected dan public saja yang bisa diakses kelas anak, sedangkan kelas private tidak bisa diturunkan kepada kelas anak
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara 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.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Subclass adalah Class anak atau turunan secara hirarki dari superclass, Suatu subclass dapat mewarisi apa-apa yang dipunya oleh parent class.
Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
Variabel super digunakan dalam kelas turunan. Variabel super mengacu pada objek di mana method tersebut berada, akan tetapi ia merupakan bagian dari kelas super dari objek tersebut. Suatu kelas bisa ditambah atau dimodifikasi dari kelas turunannya. Variabel super  hanya mengacu pada bagian objek sebelum ia ditambah atau dimodifikasi, atau dengan kata lain bentuk aslinya sebelum dia diturunkan, yang dalam hal ini sama dengan kelas supernya.

Misalnya kita akan menulis suatu kelas, dan kelas tersebut memiliki method instansi bernama suatuMethod(). Pernyataan super.suatuMethod() berarti menjalankan suatuMethod() pada kelas supernya. Jika tidak ada metode suatuMethod() pada kelas supernya, Java akan menampilkan pesan kesalahan sintaks.

Alasan mengapa Java memiliki variabel super  adalah karena banyak hal yang mungkin tersembunyi pada kelas turunan. Misalnya karena kita mengimplementasikan fungsi lain pada kelas turunan dengan nama yang sama (dalam kaitannya dengan polimorfisme, misalkan).

Ketika kita membuat method baru pada kelas turunan yang memiliki nama dan jenis parameter yang sama dengan method pada kelas supernya, method dari kelas super akan disembunyukan. Dalam bahasa pemrograman, method ini menimpa (override) method dari kelas supernya. Variabel super bisa digunakan untuk mengakses method aslinya yang didefinisikan di kelas supernya.
Kegunaan utama dari super biasanya untuk memperluas kegunaan method yang sudah ada, bukan menggantinya secara keseluuruhan. Method baru bisa menggunakan super untuk menjalankan instruksi pada kelas supernya, kemudian menambahkan instruksi lain pada kelas turunannya.


Contoh Inheritance : 

 class Kendaraan{
string jenis;
int harga;
}
public class mobil extends kendaraan()
{
void run(){
system.out.println("Gas Terus!");
}
}
public class motor extends kendaraan()
{
void run(){
system.out.print("Pelan-Pelan");
}
}

KEUNTUNGAN INHERITANCE

1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.
2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.

ENKAPSULASI

Enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detil dari class untuk mencegah akses yang ilegal. Ada dua hal yang  mendasar dari enkapsulasi yaitu information hiding dan interface to access data. Berikut sedikit penjesalan dari hal diatas. Information hiding adalah menyembunyikan informasi dari suatu class agar tidak bisa diakses dari luar class, caranya hanya dengan memberikan modifier private pada varibel yang ingin kita hiding. Selanjutnya mengenai interface to acces data, ialah cara kita untuk mengubah nilai pada suatu variabel yang telah dilakukan information hiding. Cara yang biasa dilakukan adalah melalui method, lewat method ini kita bisa merubah nilai suatu variabel yang telah mengalami information hiding.

Enkapsulasi tersebut terdiri dari tiga jenis yaitu public, protected, dan private.

1. Public

Merupakan kata kunci yang digunakan dalam java yang memungkinkan setiap variabel dan method
yang di deklarasikan dalam class public dapat di akses oleh semua class yang sama, subclass atau non subclass yang sama di package yang sama, subclass dan non subclass di package yang berbeda.



2. Protected
Merupakan kata kunci yang di deklarasikan untuk memproteksi suatu class agar setiap variabel dan method yang dideklarasikan tidak dapat di akses oleh non subclass di dalam package yang sama. Dalam class protected, yang dapat mengakses variabel dan method nya adalah jika methodnya berada pada classnya sama, subclass dan non sub yang sama di package yang sama, dan subclass di package yang berbeda.



3. Private
Merupakan kata kunci yang dideklarasikan dalam suatu class agar setiap variabel dan method yang berada dalam class private ini hanya dapat diakses oleh class yang sama. Didalam bahasa pemgrograman java class yang bersifat private memproteksi agar semua variabel dan methodnya tidak dapat di akses oleh semua subclass dan non subclass di package yang sama, dan subclass dan non subclass di package yang berbeda.

Polymorphism

Polymorphism merupakan salah satu konsep penting dalam object oriented programming (OOP) khususnya di bahasa pemrograman Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk. Ada beberapa definisi berbeda tentang polymorphism yang berkaitan dengan pemrograman berorientasi obyek. Sedangkan apa yang dimaksud dengan polymorphism sendiri, sebenarnya sulit untuk didefinisikan. Sejalan dengan contoh yang diberikan, Anda diharapkan dapat mengerti dan memahami konsep polymorphism itu sendiri.
 Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Peran polymorphism sebenarnya tidak terbatas hanya pada hal tersebut. Ada keterkaitan antara polymorphism dan inheritance (turunan).
Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah juga instance dari superclass. Apabila Anda mendeklarasikan metoda dengan parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen berupa obyek subclass yang merupakan turunan dari superclass tersebut. 


overriding dan overloading

Overloading

Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.
Pada method overloading perbedaan parameter mencakup :
1. Jumlah parameter
2. Tipe data dari parameter
3. Urutan dari tipe data parameter
Method Overloading juga dikenal dengan sebutan Static Polymorphism. Berikut ini contoh class yang melakukan Overloading.


public class ContohOverloading { 
 public void jumlah (int a, int b){
 System.out.println("Jumlah 2 angka ="+ (a + b));
 } 
 //oveloading perbedaan jumlah parameter
 public void jumlah (int a, int b, int c){
 System.out.println("Jumlah 3 angka =" + (a + b + c));
 } 
 //overloading perbedaan tipe data parameter
 public void jumlah (double a, int b){
 System.out.println("Jumlah 2 angka (double+int) = "+ (a + b));
 } 
 //overloading perbedaan urutan tipe data parameter
 public void jumlah (int b, double a){
 System.out.println("Jumlah 2 angka (int+double) = "+ (a + b));
 }
}

Overriding

Method overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan dari method overriding pada Java :
1. Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
2. Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di bandingkan dengan hak akses method pada parent class.

 Berikut ini contoh overriding :

public class Binatang {
    public void begerak(){
        System.out.println("Binatang bergerak sesuai kemampuannya");
    }
    public void berkembangBiak(){
        System.out.println("Binatang berkembang biak sesuai kemampuannya");
    }

}
public class Mamalia extends Binatang {
    //overriding method parent class
    public void begerak(){
        System.out.println("Mamalia bergerak sebagian besar dengan kakinya");
    }    
    public void berlari(){
        System.out.println("Sebagian Mamalia dapat berlari");
    }
}

public class PenggunaanOverriding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Binatang b = new Binatang();
        Mamalia m = new Mamalia();
        Binatang bm = new Mamalia();
        
        b.begerak();
        m.begerak();
        bm.begerak();
        bm.berkembangBiak();
    }
}
Demikian penjelasan dari kami, Mohon Maaf Bila ada kesalahan Wassalamualaikum wr.wb.





Daftar Pustaka : 







Komentar

Postingan populer dari blog ini

Tutorial Membuat Aplikasi Perpustakaan Menggunakan Java | | netbeans

TUTORIAL MEMBUAT APLIKASI PERPUSTAKAAN MENGGUNAKAN JAVA  RPL XI 1 Assalamualaikum wr. wb, kali ini saya akan memberikan tutorial java menggunakan IDE netbeans, dan alat yang harus dipersiapkan untuk membuat aplikasi ini adalah :   Xampp (untuk penyimpanan database)  IDE netbeans (sebelum menginstall netbeans harap install JDK terlebih dahulu).  MYSQL Jdbc Driver connector java  JCalendar(untuk memasukkan JDateChooser). 1. Baiklah, Pertama-tama Pastikan panel Xampp Sudah Jalan :  2. Buka URL  http://localhost/phpmyadmin/ , Lalu halaman otomatis akan teralih ke phpmyadmin, Lalu  kalikan klik database->Masukkan nama database (db_perpustakaan)-> klik Create 3. Setelah itu kita buat table untuk menyimpan data-data->klik New->Lalu masukkan Data di bawah ini , dan khusus untuk id diwajibkan memakai auto increment, dengan cara centang A_I  4. Setelah itu, Kita Buka IDE Netbeans, la...

Struktur Dan fungsi Jaringan Pada Tumbuhan

Mungkin banyak dari kalian tidak tahu bagaimana struktur dan fungsi jaringan pada tumbuhan, dan kali ini saya akan memposting bagaimana struktur dan fungsi jaringan pada tumbuhan Untuk lebih lanjutnya saya akan memberitahukan bagaimana struktur dan fungsi pada jaringan tumbuhan silahkan simak dibawah : A. Jaringan pada tumbuhan 1. Jaringan meristem jaringan ini merupakan jaringan muda yang sel-selnya selalu membelah diri untuk menambah jumlah sel tubuh. Ciri-ciri jaringan meristem : A). Mempunyai sel yang berbanding tipis B). Ukuran sel sama C). Mengandung banyak protoplasma D.)selnya tidak mengandung kristal dan cadangan makanan E). Memiliki rongga sel yang sangat kecil Berdasarkan letak dalam tumbuhan,  jaringan meristem terdiri dari tiga macam, yaitu : A. Meristem apikal (ujung)             Terdapat di ujung akar dan ujung batang. B. Meristem interkalar ( antara)           Terdapat dian...