Perbezaan Antara Kelas Abstrak dan Warisan

Anonim

Kelas Abstrak vs Warisan

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

Apakah Kelas Abstrak?

Biasanya, kelas Abstrak, juga dikenali sebagai Kelas Abstrak Base (ABC), tidak boleh instantiated (contoh kelas itu tidak boleh dibuat). Oleh itu, kelas Abstrak hanya bermakna jika bahasa pengaturcaraan menyokong warisan (keupayaan untuk mencipta subclass daripada melanjutkan kelas). Kelas abstrak biasanya mewakili konsep atau entiti abstrak dengan pelaksanaan sebahagian atau tiada. 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 kelas induk dan fungsi boleh ditambah untuk menyelesaikannya.

Kelas abstrak mungkin mengandungi kaedah Abstrak. Subkelas yang memanjangkan kelas abstrak boleh melaksanakan kaedah-kaedah abstrak ini (diwariskan). Sekiranya kelas kanak-kanak melaksanakan semua kaedah Abstrak, ia adalah kelas konkrit. Tetapi jika tidak, kelas kanak-kanak juga menjadi kelas Abstrak. Apa maksudnya ialah, apabila programmer menamakan kelas sebagai Abstrak, dia mengatakan bahawa kelas itu tidak lengkap dan ia akan mempunyai elemen yang perlu diselesaikan oleh subclass 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 sudah tentu dapat melaksanakannya sendiri).

Apakah warisan?

Warisan adalah konsep berorientasikan objek, yang membolehkan kelas baru untuk melanjutkan kelas-kelas lain. Memperluas kata kunci digunakan untuk melaksanakan konsep warisan dalam bahasa pengaturcaraan Java. Warisan pada asasnya menyediakan penggunaan semula kod dengan membenarkan memperluaskan sifat dan tingkah laku kelas yang sedia ada oleh kelas yang baru ditakrifkan. Apabila subkelas baru (atau kelas turunan) memanjangkan kelas super (atau kelas induk) bahawa subkelas akan mewarisi semua atribut dan kaedah kelas super. Subkelas boleh memilih untuk mengalihkan tingkah laku (menyediakan fungsi baru atau lanjutan kepada kaedah) yang diwarisi dari kelas induk.Biasanya, Kelas subclass tidak boleh memanjangkan kelas super berganda (e.g. di Java). Oleh itu, anda tidak boleh menggunakan pelbagai untuk warisan. Untuk memiliki banyak warisan, anda perlu menggunakan antara muka.

Apakah perbezaan antara Kelas Abstrak dan Warisan?

Kelas abstrak biasanya mewakili konsep abstrak atau entiti dengan sebahagian atau tiada pelaksanaan. Warisan membolehkan kelas baru untuk melanjutkan kelas-kelas lain. Kerana, kelas Abstrak tidak dapat instantiated, anda perlu menggunakan konsep warisan untuk menggunakan kelas Abstrak. Jika tidak, kelas Abstrak tidak digunakan. Kelas abstrak mungkin mengandungi kaedah Abstrak dan apabila kelas dilanjutkan, semua kaedah (Abstrak dan konkrit) diwarisi. Kelas yang diwarisi boleh melaksanakan sebarang atau semua kaedah. Jika semua kaedah Abstrak tidak dilaksanakan, kelas itu juga menjadi kelas Abstrak. Kelas tidak dapat mewarisi dari lebih daripada satu kelas Abstrak (ini bukan kualiti kelas Abstrak per se, tetapi sebaliknya sekatan warisan).