Perbezaan Antara Kelas Abstrak dan Kelas Konkrit

Anonim

Kelas Abstrak vs Kelas Konkrit

Kebanyakan bahasa pengaturcaraan objek berorientasikan objek popular seperti Java dan C # adalah berasaskan kelas. Mereka mencapai konsep berorientasikan objek seperti pengkapsulan, warisan dan polimorfisme melalui penggunaan kelas. Kelas adalah perwakilan abstrak objek dunia sebenar. Kelas boleh sama ada konkrit atau abstrak bergantung kepada tahap pelaksanaan fungsi kaedah mereka. Kelas konkrit sepenuhnya melaksanakan semua kaedahnya. Kelas abstrak boleh dianggap sebagai versi terhad kelas biasa (konkrit), di mana ia mungkin mengandungi kaedah yang sebahagiannya dilaksanakan. Biasanya, kelas konkrit dirujuk sebagai kelas (hanya).

Apakah Kelas Beton?

Kelas lalai adalah kelas konkrit. Kata kunci kelas digunakan untuk menentukan kelas (e.gg di Java). Dan biasanya mereka hanya dirujuk sebagai kelas (tanpa konkrit kata sifat). Kelas konkrit menggambarkan perwakilan konsep objek dunia sebenar. Kelas mempunyai sifat yang dipanggil sifat. Atribut dilaksanakan sebagai pembolehubah global dan contoh. Kaedah dalam kelas mewakili atau menentukan kelakuan kelas-kelas ini. Kaedah dan sifat kelas dipanggil ahli kelas. Lazimnya, enkapsulasi dicapai dengan membuat sifat-sifat peribadi, sambil mewujudkan kaedah awam yang boleh digunakan untuk mengakses sifat-sifat tersebut. Objek adalah contoh kelas. Warisan membolehkan pengguna untuk melanjutkan kelas (dipanggil kelas sub) dari kelas lain (dipanggil kelas super). Polimorfisme membolehkan pengaturcara untuk menggantikan objek kelas sebagai objek objek super kelasnya. Biasanya, kata nama yang ditemui dalam definisi masalah terus menjadi kelas dalam program. Dan juga, kata kerja menjadi kaedah. Awam, peribadi dan dilindungi adalah pengubah akses capaian biasa yang digunakan untuk kelas.

Apakah Kelas Abstrak?

Kelas abstrak diisytiharkan menggunakan kata kunci Abstrak (e.gg di Java,). 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 menjadi 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 unsur-unsur 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 perbezaan antara Kelas Abstrak dan Kelas Konkrit?

Kelas abstrak biasanya mempunyai sebahagian atau tiada pelaksanaan. Sebaliknya, kelas konkrit sentiasa mempunyai tingkah laku sepenuhnya. Tidak seperti kelas konkrit, kelas abstrak tidak dapat diterapkan. Oleh itu, kelas abstrak perlu dilanjutkan untuk menjadikannya berguna. Kelas abstrak mungkin mengandungi kaedah abstrak, tetapi kelas konkrit tidak boleh. Apabila kelas abstrak dilanjutkan, semua kaedah (kedua-dua abstrak dan konkrit) diwarisi. Kelas yang diwarisi boleh melaksanakan sebarang atau semua kaedah. Jika semua kaedah abstrak tidak dilaksanakan, maka kelas itu juga menjadi kelas abstrak.