Pengertian Inheritance,Encapsulation,Polymorphysm & Overloading,Overriding.

Pengertian tentang :

Inheritance,Encapsulation,Polymorphysm & Overloading,Overriding.

Oke kita mulai pada yang pertama, yaitu :



INHERITANCE




Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya.
Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.


Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.

ENCAPSULATION

         


  Enkapsulasi adalah sebuah peroses pemaketan / penyatu data bersama metode – metodenya, dimana hal ini bermanfaat untuk menyembunyikan rincian – rincian implementasi dari pemakai. Maksud dari enkampsulasi ini adalah untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam Java enkapsulasi dapat dilakukukan dengan pembentukan kelas – kelas, menggunakan keyword class
  • PRIVATE
Memberikan Hak Akses hanya pada Class itu sendiri,  Maksudnya apa-apa saja yang  berada di dalam Class A baik itu Method ataupun Atributnya hanya bisa di Akses oleh Class A saja, dan Class lain tidak bisa mengaksesnya.

  • PUBLIC
Memberikan Hak Akses kepada Atribut atau Method agar bisa diakses oleh siapapun( Baik itu berupa Properti  atau Class lain yang berhubungan), Atau yang bisa lebih saya jelaskan seperti Method atau Atribut yang ada di Class A bisa di akses oleh siapapun baik itu Class A, Class B dan lainnya.

  • PROTECTED
Memberikan Hak Akses kepada Class itu sendiri dan Class hasil turunannya atau yang bisa dimaksud dengan (Inheritance), Artinya apa apa saja yang ada di Class A hanya bisa diakses oleh Class A sendiri dan Class yang meng Extends Class A. Tetapi harus dipahami Class lain yang berada dalam satu package dengan A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah Class-Class yang berada diluar Package Class A. Untuk dapat mengaksesnya, Class yang berada diluar Package Class A harus MengExtends Class A.



POLYMORPHYSM


Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.


Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.


OVERLOADING




Method Overloading adalah suatu kemampuan atau fitur dalam bahasa Java dimana kita dapat membuat banyak Method dengan nama yang sama, tetapi memiliki argumen yang berbeda. Hal ini tentu akan sangat memudahkan kita karena ketika kita membuat beberapa method dengan fungsi yang sama, kita tidak perlu membuat method-method tersebut dengan nama-nama yang berbeda. Cukup argumennya saja yang kita bedakan.



OVERRIDING







Overriding adalah method subclass sama dengan method super class, parameternya sama tetapi pernyataan atau implementasinya berbeda.

Terdapat keuntungan ketika meng-override method yaitu super class selaku pemilik overriden method, kodenya tidak perlu mengalami perubahan sama sekali, sementara itu di sisi lainnya sub class dapat mengimplementasikan kode tersebut sesuai dengan kebutuhan.

Bisa dibayangkan jika suatu superclass memiliki banyak subclass. Ketika sub class - sub class tersebut perlu untuk menggunakan method dari super class, mereka dapat menggunakannya karena sub class dapat menggunakan method super class pada konsep inheritance.

Dan jika mereka perlu mengimplementasikannya dengan berbeda mereka tinggal meng-override method dari super class tanpa sama sekali menyentuh kode method dari super class.


Berikut ini adalah aturan-aturan pada overriding method yang perlu untuk anda ketahui :



  • List dari argumen pada overriden dan overriding method harus benar-benar sama, termasuk tipe data dan urutan pada argumen tersebut.

  • Acces modifier pada overriding method tidak bisa lebih ketat daripada access modifier di overriden method.


  • Jika suatu class inherit dari class abstract atau mengimplementasikan interface, maka class tersebut harus meng-override semua method abstract kecuali class itu sendiri adalah class abstract.

  • Method static, private dan final tidak bisa di-override. Namun method static bisa dideklarasikan ulang pada subclass.

  • Overriding method harus memiliki tipe return (sub type) yang sama

  • Jika method tidak bisa diwariskan, maka tidak bisa di-override

  • Sub class yang berada pada package yang berbeda hanya dapat meng-override method non-final yang dideklarasikan sebagai public atau protected

  • Suatu constructor tidak bisa di-override

  • Overriding method tidak boleh melontarkan checked exception yang baru atau yang lebih luas.

  • Untuk memanggil overriden method melalui sub class dapat menggunakan keyword super.
Sekianlah penjelasan nya semoga artikel diatas bermanfaat terimakasih sudah membaca :) !




Komentar