Zainspirował mnie ten temat: Klasy abstrakcyjne
i postanowiłem napisać coś takiego tylko, że w C#:
/*
Utwórz klasę bazową z abstrakcyjną metodą print(), przesłoniętą w klasach pochodnych.
- Wersja przesłonięta metody ma wypisywać wartość składowej int zdefiniowanej w klasie pochodnej.
- W miejscu definiowania zmiennej nadaj jej wartość niezerową. W konstruktorze klasy bazowej wywołaj metodę.
- W metodzie main() utwórz obiekt klasy pochodnej, a potem wywołaj na jego rzecz metodę print(). Wyjaśnij zaobserwowane efekty.
*/
using System;
abstract class bazowa
{
public abstract void Print();
public bazowa()
{Print();}
}
class pochodna : bazowa
{
private int zmienna = 4;
public override void Print()
{
Console.WriteLine(zmienna);
}
}
class Abstrakcja
{
static void Main()
{
pochodna p = new pochodna();
p.Print();
Console.ReadLine();
}
}
Wyniki, które ja dostaje to 4 i 4.... dlaczego?:)
Tamten gostek dostawał 0 i 10 bo jego zmienna wynosiła 10 a moje 4... ocb?