Departemen Ilmu Komputer FMIPA IPB 2013 Inheritance Departemen Ilmu Komputer FMIPA IPB 2013
Pengantar C++ memungkinkan suatu kelas mewarisi data ataupun fungsi anggota dari kelas lain Kelas yang mewarisi sifat kelas lain disebut kelas turunan (derived class) sedangkan kelas yang mewariskan sifat ke kelas lain disebut kelas dasar (base class) Keuntungan reusability memungkinkan suatu code yang telah ditulis mudah sekali untuk digunakan kembali (lebih efisien dan hemat waktu, dapat menambahkan sifat-sifat baru yang tidak ada pada kelas dasar, mengganti sifat-sifat pada kelas turunan yang berbeda dengan kelas dasar) 2
Dasar pewarisan 1 Basis adalah kelas dasar Turunan adalah kelas turunan Kelas Turunan mewarisi sifat-sifat dari kelas Basis INHERIT1.CPP base class derived class sony@ipb.ac.id
Hanya mendefinisikan nama base class, tanpa menentukan jenis pewarisan private ! ERROR Private basis = basis (kalau penentu warisan tidak didefinisikan private, sehingga tidak dapat diakses dari luar kelas (main())) 5
Dasar pewarisan 2 class Turunan : private Basis semua anggota yang bersifat public (dan juga protected) pada kelas dasar (Basis) diwariskan ke kelas turunan (Turunan) sebagai anggota yang bersifat private Konstruktor dan destruktor tidak diwariskan Bagian private dari suatu kelas tidak diwariskan → cara paling mudah mengganti private dengan public (shg anggota data bisa diakses dari fungsi main() ) Solusi: penentu akses Protected INHERIT2.CPP
Protected Anggota data bisa diakses pada kelas Turunan, tetapi tidak dapat diakses pada fungsi main() INHERIT3.CPP Penentu Pewarisan Penentu Akses di Kelas Dasar Akses Baru pada Kelas Turunan private Private Protected Public Tidak diwariskan protected Protected (tetap) public Public (tetap)
Konstruktor & Destruktor pada Inheritance Pada saat obyek berkelas Turunan diciptakan: Konstruktor kelas dasar dengan sendirinya dijalankan Kemudian konstruktor kelas turunan dijalankan Pada saat obyek berakhir: Destruktor kelas turunan dijalankan terlebih dulu Kemudian destruktor kelas dasar dijalankan INHERIT4.CPP
Pewarisan beberapa tingkat Hal yang terpenting dalam membuat pewarisan yang bertingkat adalah menginisialisasi konstruktor kelas dasarnya dari konstruktor kelas turunannya Contoh : Manager:: Manager(char *nama, int usia, char *bagian, int nomor_pegawai, char *mobil) : Pegawai(nama, usia, bagian, nomor_pegawai) adalah contoh untuk melakukan konstruksi terhadap kelas dasar bernama Pegawai TIGAKLAS.CPP orang (nama, usia) pegawai (bagian, nomor_pegawai) manager (mobil)
Next !
Next !
Pewarisan ganda Sebuah kelas dapat diwarisi lebih dari satu kelas WRGANDA1.CPP Ayah Ibu Anak
Latihan Implementasikan class diagram berikut dengan menggunakan C++ (inheritance) Method : - Insert - View
Latihan Analisa tugas minggu lalu. Jika memungkinkan, terapkan konsep inheritance pada SIMAK tersebut.