[C#] Overerving of inheritance

Even wat basis aspecten over overervering (inheritance) in C#.
Onderstaande code even om een beeld te krijgen hoe het ook alweer zat. Het is heel basis en vereist geen verdere uitleg denk ik:
public class Parent
{
private string _waarde;

public Parent(string waarde)
{
_waarde = waarde;
Response.Write("Parent constructor MET parameter ");
}

public Parent()
{
_waarde = "default;";
Response.Write("Parent constructor zonder parameter");
}

public void Print()
{
Response.Write(_waarde);
}
}

public class Child : Parent
{
public Child()
{
Response.Write("Child constructor zonder parameter");
}
}

// Create en initialize Child object:
Child child = new Child();
child.Print();

// Uitkomst
Parent constructor zonder parameter
Child constructor zonder parameter
default
Maar hoe zat het ook alweer als je nou de constructor van de parent aan wil roepen vanuit de Child? En hoe roep je nou methods aan vanuit de Child van de Parent? En hoe overschrijf je methods ook alweer? Antwoorden op deze vragen volgens in het volgende stukje code:

public class Parent
{
private string _waarde;

public Parent(string waarde)
{
_waarde = waarde;
Response.Write("Parent constructor MET parameter ");
}

public Parent()
{
_waarde = "default;";
Response.Write("Parent constructor zonder parameter");
}

public void Print()
{
Response.Write(_waarde);
}
}

public class Child : Parent
{
public Child() : base ("Geen default waarde meer")
{
Response.Write("Child constructor met base aanroep");
}

public new void Print()
{
base.Print();
Response.Write("De print van Child");
}
}

// Create en initialize Child object:
Child child = new Child();
child.Print();

// Uitkomst
Parent constructor MET parameter // constructor werk
Child constructor met base aanroep // constructor werk
Geen default waarde meer // print methode van de parent class (base)
De print van Child

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren