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.

  • ๐Ÿงฌ Warisan: Kelas turunan mewarisi field dan method dari kelas induknya dan dapat menambahkan field dan method miliknya sendiri.
  • ๐Ÿ”’ Anggota yang dilindungi: Memberi tanda protected pada field induk memungkinkan kelas anak yang diturunkan untuk menggunakannya kembali secara langsung.
  • ๐Ÿงฉ Polimorfisme: Satu nama metode dapat memiliki banyak bentuk, sehingga satu panggilan akan berperilaku berbeda tergantung konteksnya.
  • ๐Ÿ”€ Overloading metode: Beberapa metode memiliki nama yang sama tetapi berbeda dalam parameter, yang ditentukan pada saat kompilasi.
  • ๐Ÿงฑ Code penggunaan kembali: Kedua prinsip tersebut mengurangi duplikasi kode dan menjaga konsistensi kelas-kelas yang terkait.
  • ๐Ÿค– Bantuan AI: GitHub Copilot membuat kerangka kelas dasar dan kelas turunan; ML.NET menggunakan kembali hierarki kelas sebagai masukan model.

Pewarisan dan Polimorfisme C#

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.

Contoh Warisan C#

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.

Contoh Warisan C#

Code Penjelasan:-

  1. 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 ':'.
  2. 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.
  3. 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.

Contoh Warisan C#

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:-

  1. 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.
  2. Kami menggunakan metode RenameTutorial dari GuruKelas 99Tutorial untuk mengubah bidang TutorialName. Kita meneruskan string โ€œ.Net by Guru99โ€ ke metode RenameTutorial.
  3. 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:

Contoh Warisan C#

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.

Contoh Polimorfisme C#

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.

Contoh Polimorfisme C#

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:-

  1. Pada langkah pertama kita menggunakan metode SetTutorial dengan 2 parameter. Dimana kita meneruskan TutorialID dan TutorialName ke metode ini.
  2. 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

  1. Buat metode terpisah yang disebut public int GetTutorialID
  2. Dalam metode itu tulis baris kode โ€œreturn TutorialID.โ€ Ini dapat digunakan untuk mengembalikan TutorialID ke program pemanggil.

Keluaran:

Contoh Polimorfisme C#

Dari outputnya, kita dapat melihat dengan jelas bahwa kedua metode tersebut berhasil dipanggil. Karena itu, string โ€œTutorial Pertamaโ€ dan โ€œTutorial Keduaโ€ dikirim ke konsol.

Pertanyaan Umum Demo Slot

C# mendukung pewarisan tunggal, bertingkat, dan hierarkis melalui kelas. Pewarisan berganda hanya tersedia melalui antarmuka.

Tidak. Kelas AC# hanya mewarisi dari satu kelas dasar. Pewarisan berganda menggunakan beberapa antarmuka sebagai gantinya.

Overloading menggunakan satu nama dengan parameter berbeda pada waktu kompilasi. Overriding mendefinisikan ulang metode dasar virtual pada waktu eksekusi.

Kata kunci virtual membuat metode dasar dapat ditimpa; kata kunci override mendefinisikannya kembali di kelas turunan.

Kata kunci `base` memungkinkan kelas turunan untuk memanggil konstruktor induk atau mengakses anggota dasar yang tersembunyi atau ditimpa.

Tandai kelas tersebut sebagai sealed. Kelas sealed tidak dapat menjadi kelas dasar, sehingga mencegah pewarisan lebih lanjut dan meningkatkan kinerja.

Ya. GitHub Copilot membuat kerangka kelas dasar dan kelas turunan serta menambahkan metode virtual dan override dari komentar atau nama kelas.

ML.NET mendefinisikan kelas data dan prediksi yang mewarisi anggota bersama, dan pipeline-nya menggunakan kembali tipe dasar transformer umum.

Ringkaslah postingan ini dengan: