Dalam tutorial ini, anda akan belajar-
- Warisan
- Polimorfisme
Apakah Warisan dalam C #?
Warisan adalah konsep penting dalam C #. Warisan adalah konsep di mana anda menentukan kelas induk dan kelas anak.
Kelas anak mewarisi kaedah dan sifat kelas induk, tetapi pada masa yang sama, mereka juga dapat mengubah tingkah laku kaedah jika diperlukan. Kelas kanak-kanak juga dapat menentukan kaedahnya sendiri sekiranya diperlukan.
Anda akan mendapat pemahaman yang lebih baik sekiranya kami melihat tindakan ini.
Sekarang mari kita lihat bagaimana kita dapat memasukkan konsep warisan dalam kod kita.
Langkah 1) Langkah pertama adalah menukar kod untuk kelas Tutorial kami. Dalam langkah ini, kami menambahkan kod di bawah ke fail Tutorial.cs.
Perhatikan bahawa kita sekarang perlu menambahkan pengubah akses 'dilindungi' ke medan TutorialID dan TutorialName.
Ingat, kami telah menyebut pengubah akses ini dalam tutorial Access Modifier. Nah di sini anda dapat melihat tujuan memilikinya. Hanya apabila anda mempunyai pengubah akses ini (dilindungi), kelas anak dapat menggunakan bidang kelas induk.
Langkah 2) Langkah kedua adalah menambah kelas anak baru kami. Nama kelas ini akan menjadi "Guru99Tutorial". Dalam langkah ini, kami menambahkan kod di bawah ke fail Tutorial.cs. Kod harus diletakkan selepas definisi kelas Tutorial.
Penjelasan Kod: -
- Langkah pertama adalah membuat kelas anak Guru99Tutorial. Kita juga perlu menyebut bahawa kelas ini akan menjadi kelas kanak-kanak dari kelas Tutorial. Ini dilakukan dengan kata kunci ':'.
- Seterusnya, kami menentukan kaedah yang dipanggil RenameTutorial. Ia akan digunakan untuk menamakan semula medan TutorialName. Kaedah ini menerima pemboleh ubah rentetan yang mengandungi nama baru Tutorial.
- Kami kemudian menetapkan parameter pNewName ke medan TutorialName.
Catatan : - Walaupun kami belum menentukan bidang TutorialName dalam kelas "Guru99Tutorial", kami masih dapat mengakses bidang ini. Ini kerana kenyataan bahawa "Guru99Tutorial" adalah kelas kanak-kanak kelas Tutorial. Dan kerana kami menjadikan medan kelas Tutorial sebagai dilindungi, mereka dapat diakses oleh kelas ini.
Langkah 3) Langkah terakhir adalah mengubah fail program.cs utama kami. Dalam aplikasi konsol kami, kami akan membuat objek kelas Guru99Tutorial. Dengan objek ini, kita akan memanggil kaedah RenameTutorial. Kami kemudian akan memaparkan medan TutorialName dengan bantuan kaedah 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 Kod: -
- Langkah pertama adalah membuat objek untuk kelas Guru99Tutorial. Ini dilakukan melalui kata kunci 'baru'. Perhatikan bahawa kali ini kami tidak membuat objek kelas Tutorial.
- Kami menggunakan kaedah RenameTutorial kelas Guru99Tutorial untuk menukar medan TutorialName. Kami meneruskan rentetan ".Net oleh Guru99" ke kaedah RenameTutorial.
- Kami kemudian memanggil kaedah GetTutorial. Perhatikan bahawa walaupun kaedah ini tidak ditentukan dalam kelas Guru99Tutorial, kami masih dapat mengakses kaedah ini. Keluaran kaedah GetTutorial kemudian dipaparkan ke konsol melalui kaedah Console.WriteLine.
Sekiranya kod di atas dimasukkan dengan betul dan program dijalankan dengan jayanya, output berikut akan dipaparkan.
Pengeluaran:
Dari hasilnya, kita dapat melihat dengan jelas bahawa medan Nama Tutorial dinamakan semula menjadi ".Net oleh Guru99". Ini dimungkinkan dengan kaedah RenameTutorial yang dipanggil oleh kelas kanak-kanak.
Apakah Polimorfisme dalam C #?
Polimorfisme adalah konsep OOP di mana satu nama boleh mempunyai banyak bentuk.
Contohnya, anda mempunyai telefon pintar untuk komunikasi. Mod komunikasi yang anda pilih boleh menjadi apa sahaja. Ini dapat berupa panggilan, pesan teks, pesan gambar, surat, dll. Oleh itu, tujuannya adalah umum iaitu komunikasi, tetapi pendekatan mereka berbeza. Ini dipanggil Polimorfisme.
Anda akan mendapat pemahaman yang lebih baik sekiranya kami melihat tindakan ini.
Mari kita lihat sekarang, bagaimana kita dapat memasukkan konsep Polimorfisme dalam kod kita.
Langkah 1) Langkah pertama adalah menukar kod untuk kelas Tutorial kami. Dalam langkah ini, kami menambahkan kod di bawah ke fail Tutorial.cs.
Penjelasan Kod: -
1 & 2) Langkah pertama adalah sama seperti contoh sebelumnya. Kami menjaga definisi kaedah SetTutorial sebagaimana adanya.
3) Kaedah ini menetapkan TutorialID dan TutorialName berdasarkan parameter pID dan pName.
4) Di sinilah kita membuat perubahan pada kelas kita di mana kita menambah kaedah baru dengan nama SetTutorial yang sama. Hanya kali ini kita hanya melewati satu parameter yang merupakan nama pN. Dalam kaedah ini, kita hanya menetapkan bidang TutorialName menjadi pName.
Langkah 2) Langkah terakhir adalah mengubah fail program.cs utama kami. Dalam aplikasi konsol kami, kami akan membuat objek 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 Kod: -
- Pada langkah pertama, kami menggunakan kaedah SetTutorial dengan 2 parameter. Di mana kita meneruskan TutorialID dan TutorialName ke kaedah ini.
- Pada langkah kedua, kita sekarang memanggil kaedah SetTutorial dengan hanya satu parameter. Kami hanya meneruskan Nama Tutorial ke kaedah ini.
Sekiranya kod di atas dimasukkan dengan betul dan program dijalankan, output berikut akan dipaparkan. Sekiranya anda ingin mengambil ID Tutorial bersama dengan Nama Tutorial, anda harus mengikuti langkah di bawah
- Buat kaedah berasingan yang disebut public int GetTutorialID
- Dalam kaedah itu tulis baris kod "kembali TutorialID." Ini boleh digunakan untuk mengembalikan TutorialID ke program panggilan.
Pengeluaran:
Dari hasilnya, kita dapat melihat dengan jelas bahawa kedua-dua kaedah tersebut berjaya dipanggil. Oleh kerana itu, rentetan "Tutorial Pertama" dan "Tutorial Kedua" dihantar ke konsol.
Ringkasan
- Warisan adalah di mana kelas anak mewarisi bidang dan kaedah kelas induk. Kelas kanak-kanak juga boleh menentukan kaedahnya sendiri.
- Polimorfisme adalah konsep OOP di mana satu nama boleh mempunyai banyak bentuk.