Video: Mamah dan Aa Beraksi - Warisan Pembawa Petaka 2024
I nheritance dalam C ++ keupayaan satu kelas untuk mewarisi keupayaan atau sifat dari kelas lain. Warisan adalah konsep yang sama. Anda mewarisi sifat-sifat tertentu dari kelas Manusia, seperti keupayaan saya untuk bercakap (kurang lebih) dengan bijak dan kebergantungan saya terhadap khasiat berasaskan udara, air, dan karbohidrat (sedikit terlalu bergantung pada yang terakhir).
Ciri-ciri ini tidak unik kepada manusia. Kelas Manusia mewarisi ketergantungan pada udara, air, dan makanan dari kelas Mamalia, yang mewarisinya dari kelas Hewan.
Keupayaan melepaskan sifat adalah satu yang kuat. Ia membolehkan anda menerangkan perkara dengan cara yang ekonomik. Sebagai contoh, jika seseorang bertanya, "Apa itik? "Anda boleh katakan," Ia adalah burung yang mengejutkan. "
Walaupun apa yang anda fikirkan, jawapan itu menyampaikan banyak maklumat. Dia tahu apa yang burung itu, dan sekarang dia tahu semua perkara yang sama tentang bebek ditambah harta tambahan itik "quackness. "
Bahasa berorientasikan objek (OO) menyatakan hubungan warisan ini dengan membenarkan satu kelas mewarisi dari yang lain. Bahasa OO boleh menjana model yang lebih dekat dengan dunia nyata (ingat bahawa barangan dunia nyata!) Daripada model yang dihasilkan oleh bahasa yang tidak menyokong warisan.
C ++ membolehkan satu kelas mewarisi kelas lain seperti berikut:
kelas Pelajar {}; kelas GraduateStudent: Pelajar awam {};
Di sini, GraduateStudent mewarisi semua ahli Pelajar. Oleh itu, GraduateStudent IS_A Pelajar . (Permodalan IS_A menekankan kepentingan hubungan ini.) Sudah tentu, GraduateStudent mungkin juga mengandungi ahli-ahli lain yang unik untuk GraduateStudent .
Warisan diperkenalkan ke dalam C ++ atas beberapa sebab. Sudah tentu, sebab utama adalah keupayaan untuk menyatakan hubungan warisan. Alasan kecil adalah untuk mengurangkan jumlah menaip.
Anggap bahawa anda mempunyai kelas Pelajar, dan anda diminta untuk menambah kelas baru yang dipanggil GraduateStudent. Warisan secara drastik dapat mengurangkan jumlah perkara yang perlu anda masukkan ke dalam kelas. Apa yang anda perlukan di kelas GraduateStudent adalah perkara yang menggambarkan perbezaan antara pelajar dan pelajar siswazah.
Kesan sampingan yang lain ada kaitan dengan pengubahsuaian perisian. Katakan anda mewarisi dari beberapa kelas yang ada. Kemudian, anda mendapati bahawa kelas asas tidak melakukan apa yang perlu subkelas.Atau mungkin kelas itu mempunyai pepijat.
Mengubah kelas asas mungkin memecahkan kod lain yang menggunakan kelas asas itu. Mencipta dan menggunakan subclass baru yang melebih-lebihkan ciri yang salah dengan versi yang diperbetulkan memecahkan masalah anda tanpa menyebabkan orang lain masalah selanjutnya.