Warisan adalah konsep penting dari C#. Warisan adalah konsep di mana Anda mendefinisikan kelas induk dan kelas anak. Kelas anak mewarisi metode dan properti dari kelas induk, tetapi pada saat yang sama, mereka juga dapat mengubah perilaku metode jika diperlukan. Kelas anak juga dapat mendefinisikan metodenya sendiri jika diperlukan.
Dalam tutorial C# ini, Anda akan belajar-
Apa itu Warisan dalam C#?
Contoh Warisan C#
Apa itu Polimorfisme dalam C#?
Contoh Polimorfisme C#
Mari kita lebih memahami Warisan C# dengan Contoh Program:
Contoh Warisan C#
Sekarang mari kita lihat bagaimana kita dapat menggabungkan konsep pewarisan dalam kode kita.
Langkah 1) Langkah pertama adalah mengubah kode untuk kelas Tutorial kita. Pada langkah ini, kita tambahkan kode di bawah ini ke file Tutorial.cs.
Perhatikan bahwa sekarang kita perlu menambahkan pengubah akses 'dilindungi' ke bidang TutorialID dan TutorialName.
Ingat kami telah menyebutkan pengubah akses ini dalam tutorial Pengubah Akses. Nah di sini Anda dapat melihat tujuan memiliki ini. Hanya jika Anda memiliki pengubah akses ini (dilindungi), kelas anak dapat menggunakan bidang 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 harus ditempatkan setelah definisi kelas Tutorial.
Penjelasan Kode:-
Langkah pertama adalah membuat kelas anak Guru99Tutorial. Kita juga perlu menyebutkan bahwa kelas ini akan menjadi kelas anak dari kelas Tutorial. 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. Catatan :– Meskipun kami belum mendefinisikan bidang NamaTutorial di kelas “Guru99Tutorial”, kami masih dapat mengakses bidang ini. Ini karena fakta bahwa "Guru99Tutorial" adalah kelas anak dari kelas Tutorial. Dan karena kami membuat bidang kelas Tutorial sebagai yang dilindungi, mereka 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 kelas Guru99Tutorial. Dengan objek ini, kita akan memanggil metode RenameTutorial. Kami kemudian akan menampilkan bidang 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();
}
}
}
Penjelasan Kode:-
Langkah pertama adalah membuat objek untuk kelas Guru99Tutorial. Ini dilakukan melalui kata kunci 'baru'. Perhatikan bahwa kali ini kita tidak membuat objek dari kelas Tutorial.
Kami menggunakan metode RenameTutorial dari kelas Guru99Tutorial untuk mengubah bidang TutorialName. Kami meneruskan string “.Net by Guru99” ke metode RenameTutorial.
Kami kemudian memanggil metode GetTutorial. Perhatikan bahwa meskipun metode ini tidak didefinisikan di kelas Guru99Tutorial, kami 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 output, kita dapat dengan jelas melihat bahwa bidang TutorialName diubah namanya menjadi ".Net oleh Guru99". Ini dimungkinkan dari metode RenameTutorial yang dipanggil oleh kelas anak.
Apa itu Polimorfisme dalam C#?
Polimorfisme di C# adalah konsep OOP di mana satu nama dapat memiliki banyak bentuk. Misalnya, Anda memiliki smartphone untuk komunikasi. Mode komunikasi yang Anda pilih bisa apa saja. Itu bisa berupa panggilan, pesan teks, pesan gambar, surat, dll. Jadi, tujuannya sama, yaitu komunikasi, tetapi pendekatannya berbeda. Ini 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 menggabungkan konsep Polimorfisme dalam kode kita.
Langkah 1) Langkah pertama adalah mengubah kode untuk kelas Tutorial kita. Pada langkah ini, kita tambahkan kode di bawah ini ke file Tutorial.cs.
Penjelasan Kode:-
1 &2) Langkah pertama sama seperti pada contoh sebelumnya. Kami menjaga definisi metode SetTutorial sebagaimana adanya.
3) Metode ini menetapkan TutorialID dan TutorialName berdasarkan parameter pID dan pName.
4) Di sinilah kami membuat perubahan ke kelas kami di mana kami menambahkan metode baru dengan nama SetTutorial yang sama. Hanya saja kali ini kita hanya melewati satu parameter yaitu pName. Dalam metode ini, kita hanya mengatur bidang TutorialName menjadi pName.
Langkah 2) Langkah terakhir adalah memodifikasi file Program.cs utama kita. Dalam aplikasi konsol kita, kita akan membuat objek dari kelas Guru99Tutorial.
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();
}
}
}
Penjelasan Kode:-
Pada langkah pertama, kita menggunakan metode SetTutorial dengan 2 parameter. Tempat kita meneruskan TutorialID dan TutorialName ke metode ini.
Pada langkah kedua, kita sekarang memanggil metode SetTutorial hanya dengan satu parameter. Kami hanya meneruskan TutorialName ke metode ini.
Jika kode di atas dimasukkan dengan benar dan program dijalankan, output berikut akan ditampilkan. Jika jika Anda ingin juga mengambil ID Tutorial bersama dengan Nama Tutorial, Anda harus mengikuti langkah di bawah ini
Buat metode terpisah yang disebut public int GetTutorialID
Pada metode tersebut tuliskan baris kode “return TutorialID”. Ini dapat digunakan untuk mengembalikan TutorialID ke program panggilan.
Keluaran:
Dari output, kita dapat dengan jelas melihat bahwa kedua metode dipanggil dengan sukses. Karena itu, string "Tutorial Pertama" dan "Tutorial Kedua" dikirim ke konsol.
Ringkasan
Pewarisan adalah tempat kelas anak mewarisi bidang dan metode kelas induk. Kelas anak kemudian juga dapat mendefinisikan metodenya sendiri.
Polimorfisme dalam C# adalah konsep OOP di mana satu nama dapat memiliki banyak bentuk.