33 lines
1.1 KiB
C#
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
|
|
} |