Kelas Abstrak lwn Kelas Konkrit
Kebanyakan bahasa pengaturcaraan berorientasikan objek moden yang popular seperti Java dan C adalah berasaskan kelas. Mereka mencapai konsep berorientasikan objek seperti enkapsulasi, pewarisan dan polimorfisme melalui penggunaan kelas. Kelas ialah perwakilan abstrak objek dunia sebenar. Kelas boleh sama ada konkrit atau abstrak bergantung pada tahap pelaksanaan fungsi kaedah mereka. Kelas konkrit melaksanakan sepenuhnya semua kaedahnya. Kelas abstrak boleh dianggap sebagai versi terhad bagi kelas biasa (konkrit), di mana ia mungkin mengandungi kaedah yang dilaksanakan sebahagiannya. Biasanya, kelas konkrit dirujuk sebagai (hanya) kelas.
Apakah itu Kelas Konkrit?
Kelas lalai ialah kelas konkrit. Kata kunci kelas digunakan untuk menentukan kelas (cth. dalam 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 atribut. Atribut dilaksanakan sebagai pembolehubah global dan contoh. Kaedah dalam kelas mewakili atau mentakrifkan kelakuan kelas ini. Kaedah dan atribut kelas dipanggil ahli kelas. Biasanya, enkapsulasi dicapai dengan menjadikan atribut peribadi, sambil mencipta kaedah awam yang boleh digunakan untuk mengakses atribut tersebut. Objek ialah contoh kelas. Warisan membolehkan pengguna melanjutkan kelas (dipanggil subkelas) daripada kelas lain (dipanggil kelas super). Polimorfisme membenarkan pengaturcara untuk menggantikan objek kelas sebagai ganti objek kelas supernya. Lazimnya, kata nama yang terdapat dalam definisi masalah terus menjadi kelas dalam program. Dan begitu juga, kata kerja menjadi kaedah. Awam, peribadi dan dilindungi ialah pengubah suai akses biasa yang digunakan untuk kelas.
Apakah itu Kelas Abstrak?
Kelas abstrak diisytiharkan menggunakan kata kunci Abstrak (cth. dalam Java,). Lazimnya, kelas Abstrak, juga dikenali sebagai Kelas Asas Abstrak (ABC), tidak boleh dibuat seketika (contoh kelas itu tidak boleh dibuat). Jadi, kelas Abstrak hanya bermakna jika bahasa pengaturcaraan menyokong warisan (keupayaan untuk mencipta subkelas daripada melanjutkan kelas). Kelas abstrak biasanya mewakili konsep atau entiti abstrak dengan pelaksanaan separa atau tiada. Oleh itu, kelas Abstrak bertindak sebagai kelas induk dari mana kelas anak diperoleh supaya kelas anak akan berkongsi ciri kelas induk yang tidak lengkap dan kefungsian boleh ditambah untuk melengkapkannya.
Kelas abstrak mungkin mengandungi kaedah Abstrak. Subkelas yang memanjangkan kelas abstrak boleh melaksanakan kaedah Abstrak (warisan) ini. Jika kelas kanak-kanak melaksanakan semua kaedah Abstrak sedemikian, ia menjadi kelas konkrit. Tetapi jika tidak, kelas kanak-kanak juga menjadi kelas Abstrak. Maksud semua ini ialah, apabila pengaturcara mencalonkan kelas sebagai Abstrak, dia mengatakan bahawa kelas itu akan menjadi tidak lengkap dan ia akan mempunyai elemen yang perlu dilengkapkan oleh subkelas yang mewarisi. Ini adalah cara yang bagus untuk membuat kontrak antara dua pengaturcara, yang memudahkan tugas dalam pembangunan perisian. Pengaturcara, yang menulis kod untuk diwarisi, perlu mengikut takrif kaedah dengan tepat (tetapi sudah tentu boleh mempunyai pelaksanaannya sendiri).
Apakah perbezaan antara Kelas Abstrak dan Kelas Konkrit?
Kelas abstrak biasanya mempunyai pelaksanaan separa atau tiada pelaksanaan. Sebaliknya, kelas konkrit sentiasa melaksanakan sepenuhnya kelakuannya. Tidak seperti kelas konkrit, kelas abstrak tidak boleh dijadikan instantiated. Oleh itu kelas abstrak perlu diperluaskan 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 mana-mana atau semua kaedah. Jika semua kaedah abstrak tidak dilaksanakan, maka kelas itu juga menjadi kelas abstrak.