Saat Anda makan burrito, setiap reseptor rasa Anda bernyanyi dengan gembira. Setiap gigitan menghadirkan kombinasi berbagai jenis rasa, seperti asin, manis, pedas, dan umami. Setiap gigitan setelah itu rasanya sedikit berbeda karena kumpulan bahan baru menggabungkan rasa mereka bersama.
Anda mungkin telah membaca bahan-bahan dari menu, tetapi Anda tidak tahu persis bagaimana salsa dibuat. Bumbu yang mereka gunakan pada sayuran mereka bisa menjadi campuran rahasia. Anda tidak perlu mengetahui setiap bahan yang tepat. Sudah cukup untuk mengetahui bahwa itu enak.
Bahannya lho, seperti nasi putih biasa, konkrit. Unsur lainnya bersifat abstrak. Anda tahu itu salsa, tapi jenis apa? Atau, jika seseorang memberi Anda burrito entah dari mana, maka seluruh burrito itu abstrak.
Abstraksi dalam Abstrak
Seiring dengan warisan, abstraksi adalah konsep penting dalam pemrograman berorientasi objek. Teorinya adalah bahwa setiap objek harus memberikan hasil yang sederhana dan dapat diprediksi. Objek juga hanya boleh membagikan apa yang perlu dibagikan.
Anda dapat menganggap burrito sebagai objek. Di dalam burrito, Anda memiliki beberapa benda lain, seperti kacang, nasi, keju, dan saus pedas. Kacang mungkin telah dibumbui. Keju bisa menjadi campuran. Dan saus pedasnya mungkin kombinasi paprika yang sudah tua dalam cuka.
Anda tidak perlu tahu bagaimana semua bahan dalam burrito dibuat. Dan dalam kasus hot dog, Anda mungkin tidak ingin tahu. Yang penting tidak hancur saat dimakan dan rasanya super enak.
Abstraksi Sangat Terikat Dengan Enkapsulasi
Ini hal yang sama dengan objek pemrograman. Saat Anda membuat instance objek (membuatnya dari kelas), itu seperti memesan burrito dari konter truk makanan. Anda memiliki akses ke beberapa data, tetapi tidak semua. Anda tidak perlu tahu cara kerja objek, selama fungsi mengembalikan data yang benar. Ini adalah burrito dalam JavaScript/TypeScript:
Bahasa yang ditentukan: tsx tidak ada'Pembuatan kode gagal!!
'
Kamu bisa mainkan dengan kode ini di kotak pasir TypeScript.
Dalam contoh di atas, bahan salsa dan keju diabstraksikan. Pertama, mereka dienkapsulasi, untuk menyembunyikan bahan khusus. Kemudian getter ditambahkan untuk mengakses bahan-bahannya. Tetapi bahan-bahannya hanya mengembalikan representasi abstrak dari apa adanya.
Abstraksi dalam Beton
Abstraksi lebih dari sebuah konsep. Kelas juga bisa abstrak. Itu berarti bahwa mereka dapat mendefinisikan kelas lain. Tapi mereka tidak bisa dipakai sendiri.
Mengapa Kelas Terkadang Harus Abstrak
Bayangkan Anda pergi ke restoran dan duduk. Pelayan memberi Anda menu. Anda membukanya untuk menemukan bahwa hanya ada satu item: makanan.
Itu cukup abstrak. Maukah Anda memesannya? Apakah Anda akan memakannya? Anda mungkin tidak. Mengatakan sesuatu adalah makanan tidak cukup. Itu perlu dipecah menjadi sesuatu yang lebih konkret.
Bagaimana dengan pasta? Nah, itu jenis makanan yang lebih spesifik. Dan kita tahu bahwa itu mungkin berisi mie dan saus. Tapi ada banyak jenis pasta di luar sana, jadi masih abstrak.
Apa Itu Abstrak dan Apa Itu Beton?
Fettuccine Alfredo adalah contoh nyata dari makanan dan pasta. Hal yang sama berlaku untuk kelas. Tidak setiap kelas harus dipakai. Beberapa kelas hanya boleh mendefinisikan struktur kelas lain.
Berikut ini contoh dengan abstrak Makanan kelas, dan seorang anak Kacang macadamia kelas:
Bahasa yang ditentukan: tsx tidak ada'Pembuatan kode gagal!!
'
Berikut kodenya.
Kelas abstrak memberi tahu kelas lain bagaimana mereka seharusnya berperilaku. Pada contoh di atas, jika Anda akan menjadi kelas makanan, Anda harus memiliki fungsi yang memungkinkan akses ke nama, rasa, deskripsi, dan kalori Anda.
Perhatikan bahwa Kacang macadamia kelas meluasMakanan. Itu mengatakan bahwa Kacang macadamia setuju untuk mengikuti aturan Makanan. Juga, perhatikan bahwa konstruktor memanggil super. Perintah itu membuat instance kelas induk sebelum konstruktor membuat instance Kacang macadamia.
Jika Anda sedang belajar memprogram, Anda bisa bersenang-senanglah dengan game pemrograman ini.
Praktek Abstraksi
- Kunjungi tautan di atas dan gunakan kotak pasir untuk membuat kelas abstrak yang disebut Sup.
- Buat anak konkret dari Sup kelas, disebut sereal.
- Menggunakan console.log untuk menguji kode Anda. Apa yang terjadi jika Anda sereal kelas tidak memiliki salah satu fungsi yang didefinisikan dalam Sup?
Tapi Apa Inti dari Kelas yang Tidak Dapat Anda Instansiasi?
Pada awalnya, kelas abstrak mungkin tampak tidak perlu. Lagi pula, Anda tidak bisa benar-benar menggunakannya untuk membuat objek. Dan itu tidak seperti mereka mewariskan fungsinya. Fungsi harus ditulis ulang di setiap kelas anak.
Ada dua alasan utama Anda membutuhkan kelas abstrak. Mereka menjaga kode Anda tetap konsisten, dan mereka memastikan bahwa pengembang lain juga menulis kode yang konsisten. Anda tidak akan selalu bekerja sendiri. Seluruh tim harus mengikuti aturan yang sama. Anda dapat belajar lebih banyak dari dokumentasi TypeScript pada kelas abstrak.
Cara Mengatur Kode Berorientasi Objek Anda Dengan Warisan
Baca Selanjutnya
Topik-topik yang berkaitan
- Pemrograman
- Pemrograman
- Pemrograman berorientasi objek
Tentang Penulis

Lee adalah seorang nomaden penuh waktu dan polymath dengan banyak gairah dan minat. Beberapa dari gairah tersebut berkisar pada produktivitas, pengembangan pribadi, dan menulis.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan