0Pricing
C# Academy · Lekcja

Dziedziczenie: ponowne wykorzystanie kodu

Ponownie wykorzystuj i rozszerzaj istniejący kod za pomocą dziedziczenia w języku C#

Dziedziczenie: ponowne wykorzystanie kodu to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 6 z 7. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 7 lekcji w sumie.

Wprowadzenie do dziedziczenia

Dziedziczenie: ponowne używanie kodu

Witamy w kolejnej lekcji! W tej lekcji poznają Państwo dziedziczenie, jedną z podstawowych zasad programowania obiektowego, oraz dowiedzą się, jak umożliwia ono ponowne używanie kodu i tworzenie hierarchii. Zaczynajmy!

Dziedziczenie: ponowne wykorzystanie kodu — ilustracja 1

Czym jest dziedziczenie?

Czym jest dziedziczenie?

Dziedziczenie umożliwia jednej klasie (klasie potomnej lub klasie pochodnej) przejęcie atrybutów i metod innej klasy (klasy nadrzędnej lub klasy bazowej). Umożliwia ponowne używanie kodu oraz tworzenie hierarchicznych relacji między klasami.

Przykład: Klasa "Car" może służyć jako klasa bazowa dla klas "ElectricCar" i "SportsCar", współdzieląc wspólne właściwości, takie jak "Color" i "Speed".

Definiowanie klasy bazowej

Definiowanie klasy bazowej

Klasa bazowa zawiera wspólne właściwości i metody, które mogą być dziedziczone przez klasy pochodne. Przykład:

Najważniejsze: Kod przeznaczony do ponownego użycia należy definiować w klasie bazowej.

using System;

class Vehicle {
    public string Color;

    public void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

Tworzenie klasy pochodnej

Tworzenie klasy pochodnej

Klasa pochodna dziedziczy właściwości i metody klasy bazowej. Do wskazania dziedziczenia należy użyć symbolu :. Przykład:

Najważniejsze: Klasy pochodne mogą dodawać nowe funkcje lub przesłaniać funkcjonalność klasy bazowej.

using System;

class Vehicle {
    public string Color;

    public void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class Car : Vehicle {
    public int NumberOfDoors;

    public void ShowDetails() {
        Console.WriteLine("Color: " + Color);
        Console.WriteLine("Doors: " + NumberOfDoors);
    }
}

class Program {
    static void Main() {
        Car myCar = new Car();
        myCar.Color = "Red"; // Inherited from Vehicle
        myCar.NumberOfDoors = 4;
        myCar.Drive(); // Inherited from Vehicle
        myCar.ShowDetails();
    }
}

Przesłanianie metod

Przesłanianie metod

Klasy pochodne mogą przesłaniać metody klasy bazowej, aby zapewnić wyspecjalizowane zachowanie. W klasie bazowej należy użyć słowa kluczowego virtual, a w klasie pochodnej słowa kluczowego override. Przykład:

Wskazówka: Przesłanianie jest przydatne do dostosowywania zachowania klas pochodnych.

using System;

class Vehicle {
    public virtual void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class SportsCar : Vehicle {
    public override void Drive() {
        Console.WriteLine("The sports car is driving fast!");
    }
}

class Program {
    static void Main() {
        SportsCar myCar = new SportsCar();
        myCar.Drive(); // Calls the overridden method
    }
}

Słowo kluczowe base

Słowo kluczowe base

Słowo kluczowe base służy do uzyskiwania dostępu do składowych klasy bazowej z poziomu klasy pochodnej. Przykład:

Wskazówka: Proszę używać base, aby rozszerzać lub uzupełniać działanie klasy bazowej.

using System;

class Vehicle {
    public string Color;

    public virtual void Drive() {
        Console.WriteLine("The vehicle is driving.");
    }
}

class Truck : Vehicle {
    public override void Drive() {
        base.Drive(); // Calls the base class method
        Console.WriteLine("The truck is carrying a heavy load.");
    }
}

class Program {
    static void Main() {
        Truck myTruck = new Truck();
        myTruck.Color = "Blue";
        myTruck.Drive();
    }
}

Zadanie praktyczne

Zadanie praktyczne

Proszę utworzyć klasę bazową o nazwie Animal z metodą Speak(), która wyświetla tekst „Zwierzę wydaje dźwięk.” Proszę utworzyć klasy pochodne Dog i Cat, które przesłaniają metodę Speak(), wyświetlając odpowiednio teksty „Pies szczeka.” i „Kot miauczy.” Przykład:

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myDog.Speak();
        myCat.Speak();
    }
}

Najlepsze praktyki dotyczące dziedziczenia

Najlepsze praktyki dotyczące dziedziczenia

Oto kilka najważniejszych praktyk:

  • Dziedziczenia należy używać tylko wtedy, gdy istnieje wyraźna relacja „jest” (np. Car jest klasą Vehicle).
  • Klasy bazowe powinny być możliwie ogólne.
  • W razie potrzeby należy używać sealed, aby uniemożliwić dalsze dziedziczenie.

Wskazówka: Dziedziczenie powinno upraszczać bazę kodu, a nie ją komplikować.

Świetna robota!

Świetna robota!

Gratulacje! W tej lekcji nauczyli się Państwo używać dziedziczenia do ponownego wykorzystywania kodu i tworzenia hierarchii klas w języku C#. W kolejnej lekcji poznamy polimorfizm — kolejne potężne pojęcie programowania obiektowego. Kodujmy dalej!

Dziedziczenie: ponowne wykorzystanie kodu — ilustracja 10

Często zadawane pytania

Czy lekcja „Dziedziczenie: ponowne wykorzystanie kodu” jest bezpłatna?

Tak — pełny tekst „Dziedziczenie: ponowne wykorzystanie kodu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 7 lekcji w sumie.

Co nauczysz się w „Dziedziczenie: ponowne wykorzystanie kodu”?

Ponownie wykorzystuj i rozszerzaj istniejący kod za pomocą dziedziczenia w języku C# Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 6 z 7.

Ile czasu zajmuje lekcja „Dziedziczenie: ponowne wykorzystanie kodu”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Czym jest programowanie obiektowe?
  2. Definiowanie klas i obiektów
  3. Właściwości i metody
  4. Konstruktory w C#
  5. Enkapsulacja i modyfikatory dostępu
  6. Dziedziczenie: ponowne wykorzystanie kodu
  7. Polimorfizm i przesłanianie metod
← Powrót do C# Academy