La prima è una semplice classe astratta con un metodo astratto (e quindi senza corpo) e un metodo virtuale con corpo ed ereditabile.
la seconda estende la prima.
public abstract class Test
{
public abstract void testAbstract();
public virtual void testVirtual()
{
Console.WriteLine("Test:step 1");
}
}
public class TestAbstract : Test
{
public override void testAbstract()
{
Console.WriteLine("TestAbstract:step 1");
}
public override void testVirtual()
{
base.testVirtual();
Console.WriteLine("TestVirtual:step 2");
}
}
public class useAbstract
{
public void DoTest()
{
Test tA = new TestAbstract();
tA.testAbstract(); //TestAbstract:step 1
tA.testVirtual(); //Test:step 1 | TestAbstract:step 1
}
}
Mentre la terza classe è il caso d'uso, nel commento è riportato il flusso dell'output.
Nessun commento:
Posta un commento