Γ # Κληρονομικότητα & Πολυμορφισμός με παραδείγματα

Πίνακας περιεχομένων:

Anonim

Σε αυτό το σεμινάριο, θα μάθετε-

  • Κληρονομία
  • Πολυμορφισμός

Τι είναι η κληρονομικότητα στο C #;

Η κληρονομικότητα είναι μια σημαντική έννοια στο C #. Το κληρονομικό είναι μια έννοια στην οποία ορίζετε τάξεις γονέων και τάξεις παιδιών.

Οι θυγατρικές τάξεις κληρονομούν μεθόδους και ιδιότητες της γονικής τάξης, αλλά ταυτόχρονα, μπορούν επίσης να τροποποιήσουν τη συμπεριφορά των μεθόδων, εάν απαιτείται. Η παιδική τάξη μπορεί επίσης να ορίσει τις δικές της μεθόδους εάν απαιτείται.

Θα έχετε καλύτερη κατανόηση εάν δούμε αυτήν την ενέργεια.

Ας δούμε τώρα πώς μπορούμε να ενσωματώσουμε την έννοια της κληρονομιάς στον κώδικα μας.

Βήμα 1) Το πρώτο βήμα είναι να αλλάξετε τον κωδικό για την τάξη μας. Σε αυτό το βήμα, προσθέτουμε τον παρακάτω κώδικα στο αρχείο Tutorial.cs.

Σημειώστε ότι πρέπει τώρα να προσθέσουμε τον τροποποιητή πρόσβασης του «προστατευμένου» τόσο στο πεδίο TutorialID όσο και στο TutorialName.

Θυμηθείτε ότι είχαμε αναφέρει αυτόν τον τροποποιητή πρόσβασης στο φροντιστήριο Access Modifier. Λοιπόν εδώ μπορείτε να δείτε τον σκοπό να το έχετε αυτό. Μόνο όταν έχετε αυτόν τον τροποποιητή πρόσβασης (προστατευμένος), η θυγατρική τάξη θα μπορεί να χρησιμοποιεί τα πεδία της γονικής τάξης.

Βήμα 2) Το δεύτερο βήμα είναι να προσθέσουμε τη νέα παιδική μας τάξη. Το όνομα αυτής της τάξης θα είναι "Guru99Tutorial". Σε αυτό το βήμα, προσθέτουμε τον παρακάτω κώδικα στο αρχείο Tutorial.cs. Ο κωδικός πρέπει να τοποθετηθεί μετά τον ορισμό της κατηγορίας Tutorial.

Επεξήγηση κώδικα: -

  1. Το πρώτο βήμα είναι να δημιουργήσετε την παιδική τάξη Guru99Tutorial. Πρέπει επίσης να αναφέρουμε ότι αυτή η τάξη θα είναι μια παιδική τάξη της τάξης. Αυτό γίνεται με τη λέξη-κλειδί ':'.
  2. Στη συνέχεια, ορίζουμε μια μέθοδο που ονομάζεται RenameTutorial. Θα χρησιμοποιηθεί για να μετονομάσει το πεδίο TutorialName. Αυτή η μέθοδος δέχεται μια μεταβλητή συμβολοσειράς που περιέχει το νέο όνομα του Οδηγού.
  3. Στη συνέχεια, εκχωρήσαμε την παράμετρο pNewName στο πεδίο TutorialName.

    Σημείωση : - Παρόλο που δεν έχουμε ορίσει το πεδίο TutorialName στην τάξη "Guru99Tutorial", εξακολουθούμε να έχουμε πρόσβαση σε αυτό το πεδίο. Αυτό οφείλεται στο γεγονός ότι το "Guru99Tutorial" είναι μια παιδική τάξη του μαθήματος. Και επειδή κάναμε τα πεδία της κατηγορίας Tutorial ως προστατευμένα, μπορούν να προσεγγιστούν από αυτήν την τάξη.

Βήμα 3) Το τελευταίο βήμα είναι να τροποποιήσουμε το κύριο αρχείο Program.cs. Στην εφαρμογή της κονσόλας μας, πρόκειται να κάνουμε ένα αντικείμενο της τάξης Guru99Tutorial. Με αυτό το αντικείμενο, θα καλέσουμε τη μέθοδο RenameTutorial. Στη συνέχεια πρόκειται να εμφανίσουμε το πεδίο TutorialName με τη βοήθεια της μεθόδου 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();}}}

Επεξήγηση κώδικα: -

  1. Το πρώτο βήμα είναι να δημιουργήσετε ένα αντικείμενο για την τάξη Guru99Tutorial. Αυτό γίνεται μέσω της «νέας» λέξης-κλειδιού. Σημειώστε ότι αυτή τη φορά δεν δημιουργούμε ένα αντικείμενο της τάξης Tutorial.
  2. Χρησιμοποιούμε τη μέθοδο RenameTutorial της τάξης Guru99Tutorial για να αλλάξουμε το πεδίο TutorialName. Περνάμε τη συμβολοσειρά ".Net by Guru99" στη μέθοδο RenameTutorial.
  3. Καλούμε στη συνέχεια τη μέθοδο GetTutorial. Σημειώστε ότι παρόλο που αυτή η μέθοδος δεν ορίζεται στην τάξη Guru99Tutorial, εξακολουθούμε να έχουμε πρόσβαση σε αυτήν τη μέθοδο. Στη συνέχεια, η έξοδος της μεθόδου GetTutorial εμφανίζεται στην κονσόλα μέσω της μεθόδου Console.WriteLine.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και το πρόγραμμα εκτελεστεί επιτυχώς, θα εμφανιστεί η ακόλουθη έξοδος.

Παραγωγή:

Από την έξοδο, μπορούμε να δούμε ξεκάθαρα ότι το πεδίο TutorialName μετονομάστηκε σε ".Net by Guru99". Αυτό έγινε εφικτό από τη μέθοδο RenameTutorial που καλείται από την παιδική τάξη.

Τι είναι ο πολυμορφισμός στο C #;

Ο πολυμορφισμός είναι μια έννοια OOPs όπου ένα όνομα μπορεί να έχει πολλές μορφές.

Για παράδειγμα, έχετε ένα smartphone για επικοινωνία. Ο τρόπος επικοινωνίας που επιλέγετε μπορεί να είναι οτιδήποτε. Μπορεί να είναι μια κλήση, ένα γραπτό μήνυμα, ένα εικονογραφημένο μήνυμα, ένα ταχυδρομείο κ.λπ. Έτσι, ο στόχος είναι κοινός που είναι η επικοινωνία, αλλά η προσέγγισή τους είναι διαφορετική. Αυτό ονομάζεται Πολυμορφισμός.

Θα έχετε καλύτερη κατανόηση εάν δούμε αυτήν την ενέργεια.

Ας δούμε τώρα, πώς μπορούμε να ενσωματώσουμε την έννοια του Πολυμορφισμού στον κώδικα μας.

Βήμα 1) Το πρώτο βήμα είναι να αλλάξετε τον κωδικό για την τάξη μας. Σε αυτό το βήμα, προσθέτουμε τον παρακάτω κώδικα στο αρχείο Tutorial.cs.

Επεξήγηση κώδικα: -

1 & 2) Το πρώτο βήμα είναι το ίδιο με τα προηγούμενα παραδείγματα. Διατηρούμε τον ορισμό της μεθόδου SetTutorial ως έχει.

3) Αυτή η μέθοδος ορίζει το TutorialID και το TutorialName με βάση τις παραμέτρους pID και pName.

4) Εδώ κάνουμε μια αλλαγή στην τάξη μας όπου προσθέτουμε μια νέα μέθοδο με το ίδιο όνομα SetTutorial. Μόνο αυτή τη φορά περνάμε μόνο μία παράμετρο που είναι το pName. Σε αυτήν τη μέθοδο, απλώς ρυθμίζουμε το πεδίο του TutorialName σε pName.

Βήμα 2) Το τελευταίο βήμα είναι να τροποποιήσουμε το κύριο αρχείο Program.cs. Στην εφαρμογή της κονσόλας μας, πρόκειται να κάνουμε ένα αντικείμενο της τάξης 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();}}}

Επεξήγηση κώδικα: -

  1. Στο πρώτο βήμα, χρησιμοποιούμε τη μέθοδο SetTutorial με 2 παραμέτρους. Όπου περνάμε τόσο το TutorialID όσο και το TutorialName σε αυτήν τη μέθοδο.
  2. Στο δεύτερο βήμα, καλούμε τώρα τη μέθοδο SetTutorial με μία μόνο παράμετρο. Περνάμε απλώς το TutorialName σε αυτήν τη μέθοδο.

Εάν ο παραπάνω κωδικός εισαχθεί σωστά και εκτελεστεί το πρόγραμμα, θα εμφανιστεί η ακόλουθη έξοδος. Εάν σε περίπτωση που θέλετε να ανακτήσετε το αναγνωριστικό ταυτότητας μαζί με το όνομα εκπαιδευτικού προγράμματος, πρέπει να ακολουθήσετε το παρακάτω βήμα

  1. Δημιουργήστε μια ξεχωριστή μέθοδο που ονομάζεται public int GetTutorialID
  2. Σε αυτήν τη μέθοδο γράψτε τη γραμμή κώδικα "επιστροφή TutorialID." Αυτό μπορεί να χρησιμοποιηθεί για να επιστρέψετε το TutorialID στο πρόγραμμα κλήσεων.

Παραγωγή:

Από την έξοδο, μπορούμε να δούμε ξεκάθαρα ότι και οι δύο μέθοδοι κλήθηκαν με επιτυχία. Εξαιτίας αυτού, οι συμβολοσειρές "First Tutorial" και "Second Tutorial" στάλθηκαν στην κονσόλα.

Περίληψη

  • Η κληρονομικότητα είναι όπου μια παιδική τάξη κληρονομεί τα πεδία και τις μεθόδους της γονικής τάξης. Στη συνέχεια, η παιδική τάξη μπορεί επίσης να ορίσει τις δικές της μεθόδους.
  • Ο πολυμορφισμός είναι μια έννοια OOPs όπου ένα όνομα μπορεί να έχει πολλές μορφές.