Kelas abstrak vs kelas konkrit
Sebilangan besar bahasa pengaturcaraan berorientasikan objek moden yang popular seperti Java dan C# adalah kelas berasaskan. Mereka mencapai konsep berorientasikan objek seperti enkapsulasi, 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 dilaksanakan sebahagiannya. Biasanya, kelas konkrit dirujuk sebagai kelas (hanya).
Apa itu kelas konkrit?
Kelas lalai adalah kelas konkrit. Kata kunci kelas digunakan untuk menentukan kelas (e.g. di java). Dan biasanya mereka hanya disebut sebagai kelas (tanpa konkrit kata sifat). Kelas konkrit menggambarkan perwakilan konseptual objek dunia sebenar. Kelas mempunyai sifat yang dipanggil atribut. Atribut dilaksanakan sebagai pembolehubah global dan contoh. Kaedah dalam kelas mewakili atau menentukan tingkah laku kelas -kelas ini. Kaedah dan atribut kelas dipanggil ahli kelas. Biasanya, enkapsulasi dicapai dengan membuat atribut secara peribadi, sambil membuat kaedah awam yang boleh digunakan untuk mengakses atribut tersebut. Objek adalah contoh kelas. Warisan membolehkan pengguna melanjutkan kelas (dipanggil kelas sub) dari kelas lain (dipanggil kelas super). Polimorfisme membolehkan pengaturcara menggantikan objek kelas sebagai pengganti objek kelas supernya. Biasanya, kata nama yang terdapat dalam definisi masalah secara langsung menjadi kelas dalam program. Dan juga, kata kerja menjadi kaedah. Awam, swasta dan dilindungi adalah pengubah akses biasa yang digunakan untuk kelas.
Apa itu kelas abstrak?
Kelas abstrak diisytiharkan menggunakan kata kunci abstrak (e.g. di Jawa,). 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 menjadi 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).
Apakah perbezaan antara kelas abstrak dan kelas konkrit?
Kelas abstrak biasanya mempunyai pelaksanaan sebahagian atau tiada. Sebaliknya, kelas konkrit sentiasa melaksanakan kelakuannya sepenuhnya. Tidak seperti kelas konkrit, kelas abstrak tidak dapat diterapkan. Oleh itu, kelas abstrak mesti dilanjutkan untuk menjadikannya berguna. Kelas abstrak mungkin mengandungi kaedah abstrak, tetapi kelas konkrit tidak dapat. Apabila kelas abstrak dilanjutkan, semua kaedah (baik 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.