0% menganggap dokumen ini bermanfaat (0 suara)
21 tayangan11 halaman

Konsep Pewarisan dalam Pemrograman Java

Pewarisan memungkinkan penciptaan kelas baru dari kelas yang sudah ada, sehingga kelas baru akan mewarisi field atau method dari kelas induk. Kelas turunan dapat menambahkan atau menimpa field dan method kelas induk. Hanya atribut public dan protected yang akan diwarisi, sedangkan private tidak.

Diunggah oleh

wulandariweni
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
21 tayangan11 halaman

Konsep Pewarisan dalam Pemrograman Java

Pewarisan memungkinkan penciptaan kelas baru dari kelas yang sudah ada, sehingga kelas baru akan mewarisi field atau method dari kelas induk. Kelas turunan dapat menambahkan atau menimpa field dan method kelas induk. Hanya atribut public dan protected yang akan diwarisi, sedangkan private tidak.

Diunggah oleh

wulandariweni
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pemrograman Berorientasi Objek

Pewarisan (Inheritance)

Pewarisan (Inheritance)
Salah satu konsep terpenting dalam PBO adalah pewarisan, dimana kita dapat menciptakan kelas baru dari kelas yang sudah ada. Konsekuensinya adalah terjadi pewarisan field atau method tertentu dari kelas yang sudah ada sebelumnya (superclass) kepada kelas yang baru (subclass). Oleh karena itu kelas yang baru atau kelas turunan akan sangat mirip dengan kelas induknya, sehingga jika kita ingin kelas turunan berbeda dengan induknya kita harus menambahkan field atau method baru pada kelas tersebut. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) kelas induknya. Dalam Java untuk mendeklarasikan suatu kelas sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama kelas, kemudian diikuti dengan nama kelas induknya. Kata kunci extends tersebut memberitahu compiler Java bahwa kita ingin melakukan perluasan kelas. Contoh deklarasi inheritance:
Contoh ini memberitahukan kompiler Java bahwa kita ingin meng-extend kelas A ke kelas B. Dengan kata lain, kelas B adalah subclass (kelas turunan) dari kelas A, sedangkan kelas A adalah induk dari kelas B

Contoh :

Pada saat kelas Manajer menurunkan atau memperluas (extend) kelas Pegawai, maka ia mewarisi data member yang dipunyai oleh kelas Pegawai. Dengan demikian, kelas Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).

Aturan pewarisan data


Data pada kelas induk yang memiliki atribut public dan protected akan diwariskan dan akhirnya dapat diakses oleh kelas turunan atau kelas anak. Sedangkan data yang beratribut private tidak akan diwariskan.
Atribut akses public protected private tanpa atribut Keterangan Diwariskan pada kelas turunan Diwariskan pada kelas turunan Tidak diwariskan Diwariskan pada kelas turunan dalam satu paket

Beberapa istilah yang perlu diperhatikan


extends Keyword ini harus kita tambahkan pada definisi kelas yang menjadi subclass. superclass Superclass digunakan untuk menunjukkan hirarki kelas yang berarti kelas dasar dari subclass/kelas turunan. subclass Subclass adalah kelas anak atau turunan secara hirarki dari superclass. super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Method overriding Pendefinisian ulang method yang sama pada subclass.

Contoh 1 :

Contoh 2 :

END OF SESSION

Common questions

Didukung oleh AI

Keuntungan utama dari mekanisme pewarisan adalah pengurangan redundansi kode karena subclass dapat mewarisi dan menggunakan kembali field dan method dari superclass. Ini juga memungkinkan generalisasi dan spesialisasi melalui hirarki kelas, meningkatkan modularitas dan kemudahan dalam pemeliharaan kode dengan memperbolehkan perubahan di satu tempat (superclass) untuk berpengaruh pada banyak tempat (subclass).

Kata kunci 'extends' dalam pemrograman berorientasi objek di Java digunakan untuk mendeklarasikan suatu kelas sebagai subclass dari kelas yang sudah ada sebelumnya (superclass). Ini memberitahu compiler bahwa kita ingin melakukan perluasan kelas sehingga subclass dapat mewarisi field dan method dari superclass tersebut .

Implikasi dari tidak diwariskannya data dengan atribut private adalah subclass tidak dapat mengakses atau memodifikasi data tersebut secara langsung, yang menjaga encapsulation dan keamanan data dari outside dan subclass. Ini memaksa pengembang untuk menyediakan akses melalui method lain, seperti getter atau setter, jika diperlukan, memastikan kontrol yang lebih baik atas bagaimana data diakses dan diubah .

Penggunaan keyword 'super' dapat mempengaruhi akses ke konstruktor dari superclass dengan memungkinkan subclass untuk memanggil konstruktor dari superclass secara eksplisit. Ini sangat berguna ketika konstruktor dari superclass memerlukan inisialisasi tertentu atau memiliki parameter yang harus ditentukan untuk menyiapkan objek superclass dengan benar sebelum melanjutkan inisialisasi di subclass .

Keyword 'extends' digunakan untuk mendeklarasikan suatu kelas sebagai subclass dari superclass, sedangkan 'super' digunakan untuk memanggil constructor dari superclass atau merujuk variabel dari superclass dalam objek subclass. 'Extends' lebih fokus pada hubungan hirarki, sementara 'super' lebih pada akses ke elemen dari superclass .

Subclass dalam Java dapat berbeda dengan superclassnya dengan cara menambahkan data member atau method baru yang tidak ada di superclass. Selain itu, subclass juga dapat melakukan 'method overriding' untuk mengubah implementasi dari method yang diwariskan, memberikan perilaku yang lebih spesifik yang sesuai dengan kebutuhan subclass .

Memahami 'method overriding' penting karena memungkinkan subclass untuk menyediakan implementasi khusus dari method yang sudah ada di superclass. Ini penting dalam pewarisan karena memungkinkan pola perilaku yang lebih fleksibel dan spesifik untuk subclass tanpa mengubah struktur superclass, sehingga mendukung prinsip substitusi Liskov dalam pemrograman berorientasi objek .

Penggunaan pewarisan mungkin tidak disarankan ketika hubungan antara kelas tidak sesuai dengan hubungan is-a yang mendasari pewarisan, dapat menyebabkan pengurangan fleksibilitas sistem, atau mempersulit pengujian dan pemeliharaan kode. Pewarisan juga tidak ideal jika menyebabkan hirarki yang kompleks dan sulit dipahami, serta ketika ada kebutuhan untuk mengubah implementasi yang hanya berfungsi untuk satu subclass dan tidak relevan dengan superclass .

Dalam Java, pewarisan mempengaruhi aksesibilitas data member berdasarkan atribut aksesnya. Data dengan atribut public dan protected akan diwariskan dan dapat diakses oleh subclass. Namun, data dengan atribut private tidak diwariskan ke subclass dan tidak bisa diakses langsung. Selain itu, data tanpa atribut (default) dapat diakses oleh subclass jika berada dalam paket yang sama .

Konsep 'hirarki kelas' dalam pemrograman berorientasi objek merujuk pada struktur hubungan antar kelas dimana satu kelas menjadi dasar bagi yang lainnya. Perannya dalam pewarisan adalah menentukan urutan pewarisan dimana subclass mewarisi properti dan perilaku dari superclassnya. Hirarki kelas membantu dalam mengorganisir dan memodelkan sistem yang kompleks dengan lebih mudah dengan cara menghubungkan kelas-kelas yang berelasi .

Anda mungkin juga menyukai