Nama : Moch Aziz A’inur Robert
Kelas : Tekkom A1
NPM. : 23562020006
Semester / Matkul : 3 / Pbo
1. Apa yang dimaksud dengan inheritance?
Inheritance adalah konsep dalam pemrograman berorientasi objek (OOP) yang memungkinkan sebuah kelas (subclass/child class) untuk mewarisi atribut dan metode dari kelas lain (superclass/parent class). Dengan inheritance, kita dapat mengorganisasi dan memanfaatkan kembali kode yang sudah ada, sehingga meningkatkan efisiensi dan memudahkan pengelolaan kode.
2. Buatlah contoh kasus yang menerapkan konsep inheritance!
Dalam sebuah aplikasi e-commerce, kita memiliki Produk sebagai superclass dengan atribut namaProduk dan harga. Subclass seperti Pakaian dan Elektronik mewarisi atribut namaProduk dan harga, tetapi menambahkan atribut khusus seperti ukuran untuk Pakaian dan daya untuk Elektronik.
Source code:
3. Adakah perbedaan cara mengakses member class milik parent dan
member class milik sendiri? Jelaskan melalui contoh!
Terdapat perbedaan cara mengakses member class milik parent dan member class milik sendiri. Untuk mengakses member class parent seperti namaProduk dan harga, subclass menggunakan keyword super. Sebagai contoh, dalam subclass Pakaian, konstruktor parent dipanggil dengan super(namaProduk, harga), dan metode parent dipanggil melalui super.tampilkanInfo(). Sementara itu, untuk mengakses member class milik sendiri seperti ukuran pada Pakaian dan daya pada Elektronik, member ini diakses langsung tanpa menggunakan keyword super. Contohnya, pada subclass Pakaian, atribut ukuran diakses langsung menggunakan nama variabelnya (System.out.println("Ukuran: " + ukuran)), atau diinisialisasi dalam konstruktor menggunakan this (this.ukuran = ukuran). Dengan demikian, penggunaan super secara spesifik ditujukan
untuk mengakses anggota yang berasal dari parent class, sementara member class milik sendiri diakses secara langsung.
4. Apa yang dimaksud dengan konsep single inheritance?
Konsep single inheritance adalah salah satu bentuk pewarisan dalam pemrograman berorientasi objek (OOP) di mana sebuah subclass (kelas turunan) mewarisi atribut dan metode dari satu superclass (kelas induk) saja.
Dalam single inheritance, subclass dapat memperluas atau mengubah fungsionalitas dari superclass, tetapi hanya memiliki satu garis keturunan langsung. Konsep ini mempromosikan hierarki yang sederhana dan memudahkan pemahaman serta pengelolaan kode. Dengan single inheritance, hubungan antara superclass dan subclass menjadi jelas: subclass adalah spesialisasi atau bentuk yang lebih spesifik dari superclass.
5. Apa yang dimaksud dengan konsep multi-level inheritance?
Konsep multi-level inheritance adalah salah satu bentuk pewarisan dalam pemrograman berorientasi objek (OOP), di mana sebuah kelas mewarisi dari kelas lain yang juga merupakan turunan dari kelas lain. Dalam hal ini, pewarisan terjadi dalam beberapa tingkat, sehingga membentuk hierarki yang lebih panjang. Setiap level dari subclass dapat mewarisi atribut dan metode dari kelas di atasnya, memungkinkan pengembangan bertahap dari fungsi dan perilaku kelas. Multi-level inheritance memungkinkan subclass untuk memperluas fungsionalitas yang diwarisi dari kelas sebelumnya, menciptakan hubungan hierarkis yang lebih dalam dan spesifik.
6. Apakah kegunaan kata kunci super? Jelaskan!
Kata kunci super dalam Java digunakan untuk mengacu pada anggota (atribut atau metode) milik superclass dalam konteks subclass. Salah satu kegunaannya adalah untuk memanggil konstruktor superclass dari konstruktor subclass, terutama jika konstruktor superclass memiliki parameter yang perlu diinisialisasi. Selain itu, super juga digunakan untuk mengakses metode superclass yang telah di-override di subclass, memungkinkan subclass untuk memperluas atau memodifikasi perilaku dari metode superclass. Kata kunci ini juga berguna untuk mengakses atribut superclass ketika terdapat konflik nama antara atribut di superclass dan subclass. Misalnya, jika subclass memiliki
atribut dengan nama yang sama dengan atribut superclass, super membantu membedakan atribut mana yang diakses. Dengan kata lain, super memungkinkan subclass untuk mengintegrasikan fungsionalitas superclass secara lebih terstruktur sambil tetap menjaga fleksibilitas untuk memodifikasi atau menambahkan fitur baru.
7. Apakah yang dimaksud dengan konstruktor tidak diwariskan?
Konstruktor tidak diwariskan berarti konstruktor dari sebuah superclass tidak secara otomatis diturunkan ke subclass dalam pewarisan. Dalam pemrograman berorientasi objek, meskipun subclass mewarisi atribut dan metode dari superclass, konstruktor superclass tidak menjadi bagian dari subclass. Hal ini karena konstruktor dirancang khusus untuk menginisialisasi atribut dan perilaku dari kelas tempatnya didefinisikan. Oleh karena itu, subclass harus mendefinisikan konstruktor sendiri, meskipun konstruktor tersebut dapat memanggil konstruktor superclass menggunakan kata kunci super.