C # Klasa abstrakcyjna samouczek: Co to jest abstrakcja na przykładzie

Spisie treści:

Anonim

Co to jest klasa abstrakcyjna w C #?

Abstract Class nigdy nie może zostać utworzony i jest oznaczony słowem kluczowym abstract. Klasa abstrakcyjna zawiera zero lub więcej metod abstrakcyjnych. Klasa abstrakcyjna działa jako klasa bazowa i jest zaprojektowana tak, aby była dziedziczona przez podklasy, które implementują lub przesłaniają jej metodę.

Nauczmy się klasy abstrakcyjnej w C # na przykładzie podanym poniżej. Poniżej znajduje się definicja klasy o nazwie „Zwierzę”. Kiedy zdefiniowana jest klasa „Animal”, nie wiadomo nic o zwierzęciu, czy jest to pies, czy kot. Metoda o nazwie description jest po prostu ogólną metodą zdefiniowaną dla tej klasy.

Teraz, kiedy już wiadomo, czym dokładnie będzie Animal, tworzymy kolejną klasę, która dziedziczy klasę bazową. Jeśli wiemy, że zwierzę jest w rzeczywistości Dog, tworzymy klasę Dog, która dziedziczy główną klasę bazową. Kluczowa różnica polega na tym, że klasa Dog nie może zmienić definicji metody Description klasy Animal. Musi zdefiniować własną abstrakcyjną metodę C # o nazwie Dog-Description. To jest podstawowa koncepcja klas abstrakcyjnych języka C #.

Zobaczmy klasę abstrakcyjną w języku C # z przykładem czasu rzeczywistego, w jaki sposób możemy zmienić nasz kod, aby zawierał klasę abstrakcyjną C #. Zwróć uwagę, że nie będziemy uruchamiać kodu, ponieważ nie ma niczego, co można uruchomić za pomocą klasy abstrakcji C #.

Krok 1) Najpierw utwórzmy klasę abstrakcyjną. Klasa będzie nosiła nazwę Tutorial i będzie miała tylko jedną metodę. Cały kod należy zapisać w pliku Program.cs.

Objaśnienie kodu: -

  1. Najpierw definiujemy klasę abstrakcyjną. Zwróć uwagę na użycie słowa kluczowego abstract. Służy do oznaczenia, że ​​klasa jest klasą abstrakcyjną.
  2. Następnie definiujemy naszą metodę, która nic nie robi. Metoda musi mieć słowo kluczowe o nazwie virtual. Oznacza to, że metoda nie może zostać zmieniona przez klasę potomną. Jest to podstawowy wymóg dla każdej klasy abstrakcyjnej.

Krok 2) Teraz dodajmy naszą klasę podrzędną. Ten kod jest dodawany do pliku Program.cs.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{abstract class Tutorial{public virtual void Set(){}}class Guru99Tutorial:Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.SetTutorial(1,".Net");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

W tym kodzie nie ma nic wyjątkowego. Po prostu definiujemy klasę o nazwie „Guru99Tutorial”, która dziedziczy abstrakcyjną klasę Tutorial. Następnie definiujemy te same metody, których używaliśmy wcześniej.

Uwaga: tutaj nie możemy zmienić definicji metody Set, która została zdefiniowana w klasie Tutorial. W klasie Tutorial zdefiniowaliśmy metodę o nazwie „Set” (publiczne wirtualne void Set ()). Ponieważ metoda była częścią klasy abstrakcyjnej C #, nie możemy ponownie definiować metody Set w klasie Guru99Tutorial.

Podsumowanie

  • Klasa abstrakcyjna w Cis jest klasą bazową, która ma bardzo podstawowe wymagania dotyczące tego, jak powinna wyglądać klasa. Klasa potomna nie może dziedziczyć metod klasy bazowej.