Dimana sebuah class baru dapat dibuat dari class lainnya dengan menurunkan sebagian atribut atau method yang dimiliki. Sehingga, class baru tersebut akan memiliki member function dan bisa langsung digunakan tanpa harus menulis ulang source code yang sama dari awal.
Relasi pewarisan merupakan relasi antar class yang bersifat IS-A atau "Adalah". Relasi ini menunjukkan adanya kesamaan sifat antar keduanya. Semisal relasinya Class DEF IS-A Class KLM, hal tersebut bisa dibaca Class DEF sama atau mirip dengan Class KLM. Sama seperti Class Ikan IS-A Class Hewan, hal ini berarti Ikan "Adalah" Hewan. Sifat umum hewan akan dimiliki ikan.
Meski begitu, hal ini tidak bisa berlaku sebaliknya seperti Hewan "Adalah" Ikan karena hewan tidak hanya ikan saja. Masih ada hewan lainnya seperti anjing, kucing, kelinci, dll.
Sebuah class yang mewarisi sifat dari class lain masih bisa menambahkan atribut/variabel/data dan atau method/operasi yang lebih spesifik untuk class itu sendiri. Mirip dengan seorang anak yang memiliki harta hasil warisan dari orang tuanya tetapi masih bisa memiliki hartanya sendiri. Seperti contoh tadi, sifat umum hewan adalah bisa bernafas, bergerak, berkembang biak, tumbuh dan berkembang, dll. Ikan yang memiliki ciri itu juga bisa memiliki ciri lain yang hanya ia miliki seperti bisa berenang, memiliki sirip, bernafas dengan insang, dll.
Manfaat utama penerapan relasi pewarisan adalah code reusability, yaitu kemampuan sebuah class untuk menggunakan source code yang telah ditulis dalam class lain. Meski begitu, kedua class yang memiliki kebutuhan data/atribut/variabel yang sama tidak bisa langsung dihubungkan dengan relasi ini. Harus dianalisis dulu tingkat kesamaan sifat antara class tersebut. Kalau banyak kesamaan dan berkaitan, potensi dibuatnya pewarisan pun semakin tinggi. Bila hanya sedikit kesamaan yang ada, ada baiknya untuk tidak dipaksakan.
Contohnya Class Pegawai dan Class Pelajar yang dalam kehidupan sehari-hari kurang berkaitan. pegawai bukanlah pelajar dan pelajar bukanlah pegawai meski keduanya sama-sama memiliki atribut nama, tanggal lahir, nomor telepon, dll.
Membuat Relasi Pewarisan
Class Induk = base class, super class
Class Anak = derived class, subclass
Syntax : Class Nama_Class_Anak extends Nama_Class_Induk { //isi class anak }
Identifier Super digunakan untuk mengakses isi class induk atau constructor class induk dan memanggil method class induk.
Override adalah kemampuan paradigma OOP untuk membuat method di class anak yang namanya sama dengan nama method milik class induk.
Modifier Protected
Pada tabel level akses tersebut, yang berkaitan dengan relasi pewarisan adalah kolom subclass dimana atribut atau method sebuah class tidak bisa diakses secara langsung oleh class anaknya kecuali diberi sifat public atau protected. Bila program tidak mengharuskan akses langsung ke variabel atau atribut class induk, ada baiknya variabel atau atribut dibuat private. Sedangkan, cara mengaksesnya tetap dilakukan menggunakan method milik class tersebut yang bersifat public.
Jenis-Jenis Pewarisan
- Single Inheritance : Hanya melibatkan 2 class dimana class induk mewariskan sifatnya ke class anak.
- Multilevel Inheritance : Terbentuk dari susunan skema single inheritance. Contohnya relasi antara class pegawai, dosen, dan dosen tetap. Class pegawai mewariskan sifatnya ke Class dosen lalu Class Dosen mewariskan sifatnya ke Class Dosen Tetap.
- Hierarchical Inheritance : Menghasilkan bentuk diagram struktur hirarki dimana sebuah class induk mewariskan sifatnya ke beberapa class anak. Contohnya relasi antara Class Pegawai, dosen, dan tendik (tenaga kependidikan). Class Pegawai mewariskan sifatnya ke Class Dosen dan Class Tendik.
- Hybrid Inheritance : Kombinasi dari skenario sebelumnya. Semisal kombinasi skema multilevel inheritance dengan skema pewarisan hierarchical yang dibuat dalam satu aplikasi.
↓↓↓ :
Universitas Pembangunan Nasional "Veteran" Jawa Timur
Nur Cahyo Wibowo, S.Kom, M.Kom
0 Comments