Perbedaan Warisan dan Komposisi

Perbedaan Warisan dan Komposisi
Perbedaan Warisan dan Komposisi

Video: Perbedaan Warisan dan Komposisi

Video: Perbedaan Warisan dan Komposisi
Video: MASIH BINGUNG? INI PERBEDAAN TIKTOK SHOP AFILLIATE DENGAN TIKTOK SHOP SELLER CENTER | djzayanti 2024, Juli
Anonim

Warisan vs Komposisi

Inheritance dan Composition adalah dua konsep penting yang ditemukan dalam OOP (Object Oriented Programming). Secara sederhana, baik Komposisi dan Warisan berurusan dengan penyediaan properti atau perilaku tambahan ke kelas. Warisan adalah kemampuan kelas untuk mewarisi properti dan perilaku dari kelas induk dengan memperluasnya. Di sisi lain, Komposisi adalah kemampuan kelas untuk memuat objek dari kelas yang berbeda sebagai data anggota.

Apa itu Warisan?

Seperti disebutkan di atas, Warisan adalah kemampuan kelas untuk mewarisi properti dan perilaku dari kelas induk dengan memperluasnya. Warisan pada dasarnya menyediakan penggunaan kembali kode dengan mengizinkan perluasan properti dan perilaku kelas yang ada oleh kelas yang baru ditentukan. Jika kelas A memperluas B, maka kelas B disebut kelas induk (atau kelas super) dan kelas A disebut kelas anak (atau kelas turunan/sub kelas). Dalam skenario contoh ini, kelas A akan mewarisi semua atribut dan metode publik dan terproteksi dari kelas super (B). Subkelas dapat secara opsional menimpa (menyediakan fungsionalitas baru atau yang diperluas ke metode) perilaku yang diwarisi dari kelas induk.

Inheritance mewakili hubungan "is-a" di OOP. Ini pada dasarnya berarti bahwa A juga merupakan B. Dengan kata lain, B dapat menjadi kelas dengan deskripsi umum dari entitas dunia nyata tertentu tetapi A menentukan spesialisasi tertentu. Dalam masalah pemrograman dunia nyata, kelas Person dapat diperluas untuk membuat kelas Karyawan. Ini disebut spesialisasi. Tetapi Anda juga bisa terlebih dahulu membuat kelas Karyawan dan kemudian menggeneralisasikannya ke kelas Person juga (mis.e. generalisasi). Dalam contoh ini, Karyawan akan memiliki semua properti dan perilaku Orang (yaitu Karyawan juga merupakan Orang) dan mungkin berisi beberapa fungsi tambahan (jadi, Orang bukan Karyawan) juga.

Apa itu Komposisi?

Komposisi adalah kemampuan suatu kelas untuk memuat objek dari kelas yang berbeda sebagai data anggota. Misalnya, kelas A dapat berisi objek kelas B sebagai anggota. Di sini, semua metode (atau fungsi) publik yang didefinisikan dalam B dapat dieksekusi di dalam kelas A. Kelas A menjadi wadah, sedangkan kelas B menjadi kelas yang terkandung. Komposisi juga disebut sebagai Containership. Dalam contoh ini, dapat dikatakan bahwa kelas A terdiri dari kelas B. Dalam OOP, Komposisi mewakili hubungan “has-a”. Penting untuk dicatat bahwa, meskipun wadah memiliki akses untuk mengeksekusi semua metode publik dari kelas yang terkandung, ia tidak dapat mengubah atau menyediakan fungsionalitas tambahan. Ketika datang ke masalah pemrograman dunia nyata, objek kelas TextBox dapat terkandung di dalam kelas Form, dan dengan demikian dapat dikatakan bahwa Form berisi TextBox (atau sebagai alternatif, Form terdiri dari TextBox).

Apa perbedaan antara Warisan dan Komposisi?

Meskipun Warisan dan Komposisi adalah dua konsep OOP, keduanya sangat berbeda dalam hal apa yang mereka izinkan untuk dicapai oleh programmer. Warisan adalah kemampuan suatu kelas untuk mewarisi properti dan perilaku dari kelas induk dengan memperluasnya, sedangkan Komposisi adalah kemampuan kelas untuk memuat objek dari kelas yang berbeda sebagai data anggota. Jika sebuah kelas diperluas, ia mewarisi semua properti/perilaku publik dan yang dilindungi dan perilaku tersebut dapat ditimpa oleh subkelas. Tetapi jika suatu kelas terkandung di dalam yang lain, wadah tidak mendapatkan kemampuan untuk mengubah atau menambahkan perilaku ke yang dikandungnya. Warisan mewakili hubungan "is-a" di OOP, sedangkan Komposisi mewakili hubungan "memiliki-a".

Direkomendasikan: