Dalam pemrograman, abstraksi adalah konsep penting yang digunakan untuk menyembunyikan detail implementasi dan fokus pada fitur yang penting. Dalam bahasa pemrograman C#, abstraksi memungkinkan kita untuk membuat kelas abstrak dan metode abstrak yang harus diimplementasikan oleh kelas turunannya.
Abstraksi merupakan cara untuk memusatkan perhatian pada fitur yang penting dan menyembunyikan detail yang rumit. Dalam konteks pemrograman, abstraksi memungkinkan kita untuk membuat kerangka kerja umum yang dapat digunakan kembali, sementara detailnya diimplementasikan di kelas turunan.
Mari kita lihat contoh sederhana tentang bagaimana abstraksi dapat diterapkan dalam bahasa pemrograman C#:
using System;
abstract class Hewan
{
public abstract void Suara();
}
class Kucing : Hewan
{
public override void Suara()
{
Console.WriteLine("Meong!");
}
}
class Anjing : Hewan
{
public override void Suara()
{
Console.WriteLine("Guk guk!");
}
}
class Program
{
static void Main(string[] args)
{
Hewan kucing = new Kucing();
Hewan anjing = new Anjing();
kucing.Suara(); // Output: Meong!
anjing.Suara(); // Output: Guk guk!
}
}
Dalam contoh di atas, kita memiliki kelas abstrak Hewan yang memiliki metode abstrak Suara(). Metode ini tidak memiliki implementasi, tetapi mendefinisikan perilaku yang harus diimplementasikan oleh kelas turunannya.
Kita kemudian membuat kelas turunan Kucing dan Anjing yang mewarisi dari kelas Hewan. Kedua kelas ini mengimplementasikan metode Suara() sesuai dengan suara yang dihasilkan oleh masing-masing hewan.
Ketika kita memanggil metode Suara() pada objek Kucing dan Anjing, masing-masing objek akan menggunakan implementasi khususnya. Ini adalah contoh abstraksi dalam C#.
Abstraksi dalam pemrograman C# memiliki beberapa manfaat, di antaranya :
- Mengurangi kompleksitas: Abstraksi memungkinkan kita untuk fokus pada fitur penting tanpa harus memikirkan detail implementasi yang rumit.
- Reusabilitas kode: Dengan menggunakan abstraksi, kita dapat membuat kerangka kerja umum yang dapat digunakan kembali untuk membuat kelas turunan dengan perilaku yang berbeda.
- Pemeliharaan yang mudah: Dengan memisahkan fungsionalitas umum dari detail implementasi, perubahan pada satu bagian tidak akan mempengaruhi bagian lain yang terkait.
Pranala Luar : C# Abstraction at w3school


















