C # Warisan & Polimorfisme dengan Contoh

Daftar Isi:

Anonim

Dalam tutorial ini, Anda akan belajar-

  • Warisan
  • Polimorfisme

Apa itu Warisan di C #?

Pewarisan merupakan konsep penting dalam C #. Pewarisan 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.

Anda akan mendapatkan pemahaman yang lebih baik jika kami melihat aksi ini.

Sekarang mari kita lihat bagaimana kita dapat menggabungkan konsep warisan 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 TutorialName.

Ingat kami telah menyebutkan pengubah akses ini dalam tutorial Pengubah Akses. Nah di sini Anda bisa melihat tujuan dari 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, kami menambahkan kode di bawah ini ke file Tutorial.cs. Kode harus ditempatkan setelah definisi kelas Tutorial.

Penjelasan Kode: -

  1. Langkah pertama adalah membuat kelas anak Guru99Tutorial. Kami juga perlu menyebutkan bahwa kelas ini akan menjadi kelas anak dari kelas Tutorial. Ini dilakukan dengan kata kunci ':'.
  2. Selanjutnya, kami 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.

    Catatan : - Meskipun kami belum menentukan bidang NamaTutorial di kelas "Guru99Tutorial", kami masih dapat mengakses bidang ini. Ini karena fakta bahwa "Guru99Tutorial" adalah kelas anak-anak dari kelas Tutorial. Dan karena kami menjadikan bidang kelas Tutorial sebagai dilindungi, mereka dapat diakses oleh kelas ini.

Langkah 3) Langkah terakhir adalah memodifikasi file Program.cs utama kita. Dalam aplikasi konsol kami, kami 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{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: -

  1. Langkah pertama adalah membuat objek untuk kelas Guru99Tutorial. Ini dilakukan melalui kata kunci 'baru'. Perhatikan bahwa kali ini kami tidak membuat objek dari kelas Tutorial.
  2. Kami menggunakan metode RenameTutorial kelas Guru99Tutorial untuk mengubah bidang TutorialName. Kami meneruskan string ".Net by Guru99" ke metode RenameTutorial.
  3. Kami kemudian memanggil metode GetTutorial. Perhatikan bahwa meskipun metode ini tidak ditentukan 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 melihat dengan jelas bahwa field TutorialName telah diubah namanya menjadi ".Net by Guru99". Ini dimungkinkan dari metode RenameTutorial dipanggil oleh kelas anak.

Apa itu Polimorfisme di C #?

Polimorfisme merupakan konsep OOP dimana satu nama dapat memiliki banyak bentuk.

Misalnya, Anda memiliki smartphone untuk komunikasi. Mode komunikasi yang Anda pilih bisa apa saja. Bisa berupa telepon, SMS, pesan gambar, surat, dll. Jadi, tujuannya adalah komunikasi, tetapi pendekatannya berbeda. Ini disebut Polimorfisme.

Anda akan mendapatkan pemahaman yang lebih baik jika kami melihat aksi ini.

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, kami menambahkan kode di bawah ini ke file Tutorial.cs.

Penjelasan Kode: -

1 & 2) Langkah pertama sama dengan contoh sebelumnya. Kami mempertahankan definisi metode SetTutorial apa adanya.

3) Metode ini menyetel 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 yang sama dari SetTutorial. Hanya saja kali ini kita hanya melewatkan satu parameter yaitu pName. Dalam metode ini, kami hanya menyetel bidang TutorialName ke pName.

Langkah 2) Langkah terakhir adalah memodifikasi file Program.cs utama kita. Dalam aplikasi konsol kami, kami 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: -

  1. Pada langkah pertama, kami menggunakan metode SetTutorial dengan 2 parameter. Di mana kami meneruskan TutorialID dan TutorialName ke metode ini.
  2. 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 seandainya Anda juga ingin mengambil ID Tutorial bersama dengan Nama Tutorial, Anda harus mengikuti langkah di bawah ini

  1. Buat metode terpisah yang disebut GetTutorialID int publik
  2. Dalam metode tersebut tulis baris kode "return TutorialID". Ini dapat digunakan untuk mengembalikan TutorialID ke program panggilan.

Keluaran:

Dari output, kita dapat melihat dengan jelas 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 menentukan metodenya sendiri.
  • Polimorfisme merupakan konsep OOP dimana satu nama dapat memiliki banyak bentuk.