Warisan C# dan Polimorfisme dengan Contoh Program
โก Ringkasan Cerdas
Pewarisan dan polimorfisme dalam C# adalah dua prinsip inti berorientasi objek. Pewarisan memungkinkan kelas turunan untuk menggunakan kembali field dan method dari kelas induk, sedangkan polimorfisme memungkinkan satu nama method untuk memiliki banyak bentuk.

Apa itu Warisan di C#?
Warisan adalah konsep penting dari C#. Warisan adalah konsep di mana Anda mendefinisikan kelas induk dan kelas anak. Kelas anak mewarisi metode dan properti kelas induk, namun pada saat yang sama, mereka juga dapat mengubah perilaku metode jika diperlukan. Kelas anak juga dapat mendefinisikan metodenya sendiri jika diperlukan.
Mari kita lebih memahami Warisan C# melalui Contoh Program:
Contoh Warisan C#
Sekarang mari kita lihat bagaimana kita dapat memasukkan konsep pewarisan ke dalam kode kita.
Langkah 1) Langkah pertama adalah mengubah kode untuk kelas Tutorial kita. Pada langkah ini, kami menambahkan kode di bawah ini ke file Tutorial.cs.
Perhatikan bahwa sekarang kita perlu menambahkan pengubah akses 'dilindungi' ke bidang TutorialID dan NamaTutorial.
Ingat, kita sudah menyebutkan pengubah akses ini di Tutorial Pengubah AksesNah, di sini Anda bisa melihat tujuan dari hal ini. Hanya ketika Anda memiliki pengubah akses ini (protected), kelas anak dapat menggunakan bidang-bidang dari kelas induk.
Langkah 2) Langkah kedua adalah menambahkan kelas anak baru kita. Nama kelas ini adalah โGuru99Tutorialโ. Pada langkah ini, kita menambahkan kode di bawah ini ke file Tutorial.cs. Kode tersebut harus ditempatkan setelah definisi kelas Tutorial.
Code Penjelasan:-
- Langkah pertama adalah membuat GuruKelas turunan 99Tutorial. Kita juga perlu menyebutkan bahwa kelas ini akan menjadi kelas turunan dari kelas Tutorial. Hal ini dilakukan dengan kata kunci ':'.
- Selanjutnya, kita mendefinisikan metode yang disebut RenameTutorial. Ini akan digunakan untuk mengganti nama bidang TutorialName. Metode ini menerima variabel string yang berisi nama baru Tutorial.
- Kami kemudian menetapkan parameter pNewName ke bidang TutorialName. Note: โ Meskipun kita belum mendefinisikan kolom TutorialName di โGuruDi kelas "99Tutorial", kita masih dapat mengakses bidang ini. Hal ini karena "Guruโ99Tutorialโ adalah kelas turunan dari kelas Tutorial. Dan karena kita membuat field-field dari kelas Tutorial sebagai protected, field-field tersebut dapat diakses oleh kelas ini.
Langkah 3) Langkah terakhir adalah memodifikasi file Program.cs utama kita. Dalam aplikasi konsol kita, kita akan membuat objek dari GuruKelas Tutorial. Dengan objek ini, kita akan memanggil metode RenameTutorial. Kemudian kita akan menampilkan field TutorialName dengan bantuan metode GetTutorial.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { public class Tutorial { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } } public class Guru99Tutorial:Tutorial { public void RenameTutorial(String pNewName) { TutorialName=pNewName; } static void Main(string[] args) { Guru99Tutorial pTutor=new Guru99Tutorial(); pTutor.RenameTutorial(".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Penjelasan:-
- Langkah pertama adalah membuat objek untuk GuruKelas Tutorial 99. Ini dilakukan melalui kata kunci 'new'. Perhatikan bahwa kali ini kita tidak membuat objek dari kelas Tutorial.
- Kami menggunakan metode RenameTutorial dari GuruKelas 99Tutorial untuk mengubah bidang TutorialName. Kita meneruskan string โ.Net by Guru99โ ke metode RenameTutorial.
- Kemudian kita memanggil metode GetTutorial. Perhatikan bahwa meskipun metode ini tidak didefinisikan di GuruPada kelas 99Tutorial, kita masih dapat mengakses metode ini. Output dari metode GetTutorial kemudian ditampilkan ke konsol melalui metode Console.WriteLine.
Jika kode di atas dimasukkan dengan benar dan program berhasil dijalankan, output berikut akan ditampilkan.
Keluaran:
Dari outputnya, kita dapat melihat dengan jelas bahwa kolom TutorialName telah diubah namanya menjadi โ.Net by Guru99โ. Hal ini dimungkinkan berkat metode RenameTutorial yang dipanggil oleh kelas turunan.
Apa itu Polimorfisme di C#?
Polimorfisme in C# Polimorfisme adalah konsep dalam OOP (Objective Ownership Planning) di mana satu nama dapat memiliki banyak bentuk. Misalnya, Anda memiliki ponsel pintar untuk berkomunikasi. Mode komunikasi yang Anda pilih bisa apa saja. Bisa berupa panggilan, pesan teks, pesan gambar, email, dan lain sebagainya. Jadi, tujuannya sama, yaitu komunikasi, tetapi pendekatannya berbeda. Inilah yang disebut Polimorfisme.
Anda akan mendapatkan pemahaman yang lebih baik tentang Polimorfisme C# dengan Contoh Program di bawah ini:
Contoh Polimorfisme C#
Sekarang mari kita lihat, bagaimana kita dapat memasukkan konsep Polimorfisme ke dalam kode kita.
Langkah 1) Langkah pertama adalah mengubah kode untuk kelas Tutorial kita. Pada langkah ini, kami menambahkan kode di bawah ini ke file Tutorial.cs.
Code Penjelasan:-
1 & 2) Langkah pertama sama seperti pada contoh-contoh sebelumnya. Kita terus...ping Definisi metode SetTutorial sebagaimana adanya.
3) Metode ini menetapkan TutorialID dan TutorialName berdasarkan parameter pID dan pName.
4) Di sinilah kita membuat perubahan pada kelas kita dimana kita menambahkan metode baru dengan nama yang sama SetTutorial. Hanya saja kali ini kita hanya melewatkan satu parameter yaitu pName. Dalam metode ini, kami hanya mengatur bidang TutorialName ke pName.
Langkah 2) Langkah terakhir adalah memodifikasi file Program.cs utama kita. Dalam aplikasi konsol kita, kita akan membuat objek dari GuruKelas tutorial 99.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public void SetTutorial(string pName) { TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); pTutor.SetTutorial(1,"First Tutorial"); Console.WriteLine(pTutor.GetTutorial()); pTutor.SetTutorial("Second Tutorial"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Penjelasan:-
- Pada langkah pertama kita menggunakan metode SetTutorial dengan 2 parameter. Dimana kita meneruskan TutorialID dan TutorialName ke metode ini.
- Pada langkah kedua, sekarang kita memanggil metode SetTutorial hanya dengan satu parameter. Kami baru saja meneruskan NamaTutorial ke metode ini.
Jika kode di atas dimasukkan dengan benar dan program dijalankan, output berikut akan ditampilkan. Jika Anda ingin mengambil ID Tutorial beserta Nama Tutorial, Anda harus mengikuti langkah-langkah di bawah ini
- Buat metode terpisah yang disebut public int GetTutorialID
- Dalam metode itu tulis baris kode โreturn TutorialID.โ Ini dapat digunakan untuk mengembalikan TutorialID ke program pemanggil.
Keluaran:
Dari outputnya, kita dapat melihat dengan jelas bahwa kedua metode tersebut berhasil dipanggil. Karena itu, string โTutorial Pertamaโ dan โTutorial Keduaโ dikirim ke konsol.







