Files
ObiektowaTeoria/dziedziczenie_polimorfizm.cs
T
2026-07-16 12:19:17 +02:00

33 lines
1.1 KiB
C#

namespace ObiektowaTeoria
{
// Klasa bazowa
public class Zwierze
{
/*
virtual umieszczamy przy deklaracji metody w klasie bazowej, aby zaznaczyć,
że ta metoda może być nadpisana w klasach pochodnych. bez virtual metody nie
pozwalają na dynamiczne przesłonięcie.
*/
public virtual void WydajDzwiek()
{
Console.WriteLine("Zwierzę wydaje dźwięk.");
}
}
// Klasa pochodna
public class Kot : Zwierze
{
/*
override używamy w klasie dziedziczącej, aby powiadomić kompilator oraz środowisko
uruchomieniowe, że metoda zamierzenie przesłania wersję metody wirtualnej z klasy bazowej.
Pozwala to na dynamiczne wywołanie właściwej dla konkretnego typu metody, nawet jeśli
odwołujemy się do obiektu przez zmienną typu bazowego.
*/
public override void WydajDzwiek()
{
Console.WriteLine("Miau");
}
}
// Zobacz plik Program.cs:16 jak używać tych klas
}