ein Projekt von goloroden.de

virtual

Allgemeines

Kennzeichnet eine Methode, eine Eigenschaft, ein Ereignis oder einen Indexer als virtuell, so dass dieses Element in einer abgeleiteten Klasse überschrieben werden kann.

Beipiel

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class BaseClass
{
    public virtual void Foo()
    {
    }
}

public class DerivedClassA : BaseClass
{
    public override void Foo()
    {
        // Overrides base method.
    }
}

public class DerivedClassB : BaseClass
{
    public new void Foo()
    {
        // Shadows base method.
    }
}

Details

Wird eine virtuelle Methode aufgerufen, so wird überprüft, ob in einer abgeleiteten Klasse eine überschreibende Methode definiert ist, wobei dann die sich in der Klassenhierarchie am tiefsten befindliche Methode aufgerufen wird. Falls keine überschreibende Methode gefunden werden kann, wird die ursprüngliche Methode aufgerufen.

Elemente, die nicht als virtuell gekennzeichnet wurden, sind nicht virtuell und können nicht überschrieben werden. Da virtuelle Elemente überschrieben werden können, kann das Schlüsselwort virtual nicht mit den Schlüsselwörtern abstract, private, override, sealed und static verwendet werden.

Siehe auch (Referenz)

Siehe auch (Guide)