TujuanMemahami dan menerapkan Polymorphism dalam OOP (Object-Oriented Programming) menggunakan C#. Dengan konsep ini, pengguna dapat memanfaatkan antarmuka yang sama untuk objek yang berbeda, sehingga menciptakan kode yang lebih fleksibel dan mudah diperluas.
KonteksDalam OOP, Polymorphism memungkinkan kita untuk bekerja dengan berbagai jenis objek yang berbagi superclass atau interface yang sama. Misalnya, semua hewan bisa mengeluarkan suara, tetapi implementasi suara berbeda tergantung jenis hewan. Dengan Polymorphism, kita cukup menggunakan satu metode untuk memanggil suara tanpa memerlukan logika khusus untuk setiap jenis hewan.
Hal yang DiperlukanLangkah-LangkahStep 1: Buat Superclass
csharp
Copy code
public class Animal
{
public string Name { get; set; }
// Metode virtual yang dapat di-override oleh subclass
public virtual void MakeSound()
{
Console.WriteLine("This animal makes a sound.");
}
}
Pada contoh di atas:
MakeSound bersifat virtual, memungkinkan subclass mengubah implementasinya.Step 2: Buat Subclass yang Meng-override Metode Superclass
MakeSound dari superclass.csharp
Copy code
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine($"{Name} says Woof!");
}
}
public class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine($"{Name} says Meow!");
}
}
Penjelasan:
override menggantikan metode virtual di superclass dengan implementasi khusus subclass.Step 3: Gunakan Polymorphism dengan Array atau List
csharp
Copy code
class Program
{
static void Main(string[] args)
{
// Array dari tipe Animal, berisi objek Dog dan Cat
Animal[] animals = new Animal[]
{
new Dog { Name = "Buddy" },
new Cat { Name = "Whiskers" }
};
// Polymorphism: memanggil MakeSound pada setiap objek
foreach (Animal animal in animals)
{
animal.MakeSound(); // Memanggil implementasi MakeSound masing-masing subclass
}
}
}
Output:
plaintext
Copy code
Buddy says Woof!
Whiskers says Meow!
Step 4: Gunakan Polymorphism dengan Parameter Metode
csharp
Copy code
public class AnimalDescription
{
public void DescribeAnimal(Animal animal)
{
animal.MakeSound(); // Memanggil metode MakeSound spesifik untuk objek
}
}
Program Utama:
csharp
Copy code
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog { Name = "Max" };
Cat cat = new Cat { Name = "Luna" };
AnimalDescription describer = new AnimalDescription();
describer.DescribeAnimal(dog); // Output: Max says Woof!
describer.DescribeAnimal(cat); // Output: Luna says Meow!
}
}
Step 5: Gunakan Polymorphism dengan Interface (Opsional)
csharp
Copy code
public interface IMakeSound
{
void MakeSound();
}
public class Dog : IMakeSound
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
public class Cat : IMakeSound
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}
Dengan interface, objek dapat diperlakukan sama meskipun berasal dari kelas berbeda.
Final Checkpoint: