Kelas Abstrak vs Kelas Beton
Sebagian besar bahasa pemrograman berorientasi objek modern yang populer seperti Java dan C berbasis kelas. Mereka mencapai konsep berorientasi objek seperti enkapsulasi, pewarisan dan polimorfisme melalui penggunaan kelas. Kelas adalah representasi abstrak dari objek dunia nyata. Kelas dapat berupa beton atau abstrak tergantung pada tingkat implementasi fungsi metode mereka. Kelas beton sepenuhnya mengimplementasikan semua metodenya. Kelas abstrak dapat dianggap sebagai versi terbatas dari kelas reguler (beton), di mana mungkin berisi metode yang diimplementasikan sebagian. Biasanya, kelas konkret disebut sebagai kelas (hanya).
Apa itu Kelas Beton?
Kelas default adalah kelas konkret. Kata kunci class digunakan untuk mendefinisikan kelas (misalnya di Java). Dan biasanya mereka hanya disebut sebagai kelas (tanpa kata sifat beton). Kelas konkret menggambarkan representasi konseptual dari objek dunia nyata. Kelas memiliki properti yang disebut atribut. Atribut diimplementasikan sebagai variabel global dan instan. Metode di kelas mewakili atau mendefinisikan perilaku kelas-kelas ini. Metode dan atribut kelas disebut anggota kelas. Biasanya, enkapsulasi dicapai dengan membuat atribut menjadi pribadi, sambil membuat metode publik yang dapat digunakan untuk mengakses atribut tersebut. Objek adalah turunan dari kelas. Warisan memungkinkan pengguna untuk memperluas kelas (disebut sub kelas) dari kelas lain (disebut kelas super). Polimorfisme memungkinkan pemrogram untuk mengganti objek kelas di tempat objek kelas supernya. Biasanya, kata benda yang ditemukan dalam definisi masalah langsung menjadi kelas dalam program. Demikian pula, kata kerja menjadi metode. Publik, privat, dan terproteksi adalah pengubah akses yang biasa digunakan untuk kelas.
Apa itu Kelas Abstrak?
Kelas abstrak dideklarasikan menggunakan kata kunci Abstrak (misalnya di Java,). Biasanya, kelas Abstrak, juga dikenal sebagai Kelas Dasar Abstrak (ABC), tidak dapat dipakai (instance dari kelas tersebut tidak dapat dibuat). Jadi, kelas Abstrak hanya bermakna jika bahasa pemrograman mendukung pewarisan (kemampuan untuk membuat subkelas dari perluasan kelas). Kelas abstrak biasanya mewakili konsep atau entitas abstrak dengan sebagian atau tanpa implementasi. Oleh karena itu, kelas Abstrak bertindak sebagai kelas induk dari mana kelas turunan diturunkan sehingga kelas turunan akan berbagi fitur yang tidak lengkap dari kelas induk dan fungsionalitas dapat ditambahkan untuk melengkapinya.
Kelas abstrak mungkin berisi metode Abstrak. Subkelas yang memperluas kelas abstrak dapat mengimplementasikan metode Abstrak (diwarisi) ini. Jika kelas anak mengimplementasikan semua metode Abstrak seperti itu, itu menjadi kelas konkret. Tetapi jika tidak, kelas anak juga menjadi kelas Abstrak. Apa artinya semua ini adalah bahwa, ketika programmer menominasikan sebuah kelas sebagai Abstrak, dia mengatakan bahwa kelas tersebut tidak akan lengkap dan akan memiliki elemen yang perlu diselesaikan oleh subkelas yang mewarisi. Ini adalah cara yang bagus untuk membuat kontrak antara dua programmer, yang menyederhanakan tugas dalam pengembangan perangkat lunak. Pemrogram, yang menulis kode untuk diwariskan, harus mengikuti definisi metode dengan tepat (tetapi tentu saja dapat memiliki implementasinya sendiri).
Apa perbedaan antara Kelas Abstrak dan Kelas Beton?
Kelas abstrak biasanya memiliki implementasi sebagian atau tidak sama sekali. Di sisi lain, kelas beton selalu memiliki implementasi penuh dari perilakunya. Tidak seperti kelas beton, kelas abstrak tidak dapat dipakai. Oleh karena itu kelas abstrak harus diperluas agar berguna. Kelas abstrak mungkin berisi metode abstrak, tetapi kelas konkret tidak bisa. Ketika kelas abstrak diperluas, semua metode (baik abstrak maupun konkret) diwarisi. Kelas yang diwarisi dapat mengimplementasikan salah satu atau semua metode. Jika semua metode abstrak tidak diimplementasikan, maka kelas tersebut juga menjadi kelas abstrak.