Perbezaan antara kelas abstrak dan warisan

Perbezaan antara kelas abstrak dan warisan

Kelas abstrak vs warisan

Kelas Abstrak dan Warisan adalah dua konsep berorientasikan objek penting yang terdapat dalam banyak bahasa pengaturcaraan berorientasikan objek seperti Java. Kelas Abstrak boleh dianggap sebagai versi abstrak kelas biasa (konkrit), manakala warisan membolehkan kelas baru melanjutkan kelas lain. Kelas Abstrak adalah kelas yang tidak dapat diinisialisasi tetapi boleh dilanjutkan. Oleh itu, kelas abstrak hanya bermakna jika bahasa pengaturcaraan menyokong warisan. Di Java, kelas abstrak diisytiharkan menggunakan kata kunci abstrak, sementara melanjutkan kata kunci digunakan untuk mewarisi dari kelas (super).

Apa itu kelas abstrak?

Biasanya, kelas abstrak, juga dikenali sebagai kelas asas abstrak (ABC), tidak dapat ditandakan (contoh kelas itu tidak dapat dibuat). Oleh itu, kelas abstrak hanya bermakna jika bahasa pengaturcaraan menyokong warisan (keupayaan untuk membuat subkelas daripada memperluaskan kelas). Kelas abstrak biasanya mewakili konsep abstrak atau entiti dengan pelaksanaan separa atau tidak. Oleh itu, kelas abstrak bertindak sebagai kelas induk dari mana kelas kanak -kanak diperoleh supaya kelas kanak -kanak akan berkongsi ciri -ciri yang tidak lengkap dari kelas induk dan fungsi dapat ditambah untuk menyelesaikannya.

Kelas abstrak mungkin mengandungi kaedah abstrak. Subkelas Memperluas Kelas Abstrak Boleh Melaksanakan Kaedah Abstrak (Diwarisi). Sekiranya kelas kanak -kanak melaksanakan semua kaedah abstrak seperti itu, ia adalah kelas konkrit. Tetapi jika tidak, kelas kanak -kanak juga menjadi kelas abstrak. Apa maksudnya ialah, apabila pengaturcara menamakan kelas sebagai abstrak, dia mengatakan bahawa kelas akan tidak lengkap dan ia akan mempunyai unsur -unsur yang perlu diselesaikan oleh subkelas yang mewarisi. Ini adalah cara yang baik untuk membuat kontrak antara dua pengaturcara, yang memudahkan tugas dalam pembangunan perisian. Pengaturcara, yang menulis kod untuk mewarisi, perlu mengikuti definisi kaedah dengan tepat (tetapi tentu saja boleh mempunyai pelaksanaannya sendiri).

Apa itu warisan?

Warisan adalah konsep berorientasikan objek, yang membolehkan kelas baru melanjutkan kelas lain. Memperluas Kata Kunci digunakan untuk melaksanakan konsep warisan dalam bahasa pengaturcaraan Java. Warisan pada dasarnya menyediakan penggunaan semula kod dengan membenarkan sifat dan tingkah laku yang meluaskan kelas yang sedia ada oleh kelas yang baru ditakrifkan. Apabila subkelas baru (atau kelas yang diperolehi) memanjangkan kelas super (atau kelas induk), subclass akan mewarisi semua atribut dan kaedah kelas super. Subclass secara pilihan boleh mengatasi tingkah laku (menyediakan fungsi baru atau lanjutan kepada kaedah) yang diwarisi dari kelas induk. Biasanya, subkelas tidak dapat memanjangkan pelbagai kelas super (e.g. di java). Oleh itu, anda tidak boleh menggunakan Extends untuk pelbagai warisan. Untuk mempunyai banyak warisan, anda perlu menggunakan antara muka.

Apakah perbezaan antara kelas abstrak dan warisan?

Kelas abstrak biasanya mewakili konsep abstrak atau entiti dengan pelaksanaan separa atau tidak. Warisan membolehkan kelas baru melanjutkan kelas lain. Kerana, kelas abstrak tidak dapat diterapkan, anda perlu menggunakan konsep warisan untuk menggunakan kelas abstrak. Jika tidak, kelas abstrak tidak berguna. Kelas abstrak mungkin mengandungi kaedah abstrak dan apabila kelas dilanjutkan, semua kaedah (abstrak dan konkrit) diwarisi. Kelas yang diwarisi dapat melaksanakan mana -mana atau semua kaedah. Sekiranya semua kaedah abstrak tidak dilaksanakan, maka kelas itu juga menjadi kelas abstrak. Kelas tidak boleh mewarisi dari lebih daripada satu kelas abstrak (ini bukan kualiti kelas abstrak, tetapi sekatan warisan).