base w konstruktorach - odwołanie do konstruktora parenta.
public class A // To jest moja klasa bazowa (base).
{
public A(int value)
{
Console.WriteLine("Klasa base A()");
}
}
public class B : A // Ta klasa dziedziczy z klasy A,
{
public B(int value)
: base(value)
{
// najpierw wywoływany jest konstruktor bazy.
// ... następnie wykonany jest konstruktor B
Console.WriteLine("Pochodna klasa B()");
}
}
class Program
{
static void Main()
{
// Tworzy nową instancję/wystąpienie klasy A, klasy bazowej.
// ... następnie wywołuje klasę B, która wykona konstruktor bazy.
A a = new A(0);
B b = new B(1);
}
Przykład z Video Pragim Technologies:
public class ParentClass
{
public ParentClass()
{
Console.WriteLine(”ParentCass Constructor caI1ed");
)
public ParentClass(string Message) //TEN KONSTRUKTOR ZOSTANIE WYWOŁANY
{
Console.WriteLine(Message);
)
}
public class ChildClass : ParentClass
(
public ChildClass() : base(”Derived class controlling Parent class”) //UWAGA "base"
(
Console.WriteLine(”ChildClass Constructor called”);
)
}
public class Program
(
public static void Mamo
(
ChildClass CC = new ChildClass;
}
}
Rezultat:
Derived class controlling Parent class.ChildClass Constructor called. A teraz keyword this... pozwala konstruktorom odwoływać się do konstruktorów tej samej klasy. Przykład z dotnetperls:
using System;
class Mouse
{
public Mouse()
: this(-1, "")
{
// Ten pierwszy konstruktor wywoła drugi konstruktor z parametrami (-1, "").
}
public Mouse(int weight, string name)
{
// Constructor implementation.
Console.WriteLine("Constructor weight = {0}, name = {1}",
weight,
name);
}
}
class Program
{
static void Main()
{
Mouse mouse1 = new Mouse();
Mouse mouse2 = new Mouse(10, "Sam");
}
}
Rezultat
Constructor weight = -1, name =
Constructor weight = 10, name = Sam
Brak komentarzy:
Prześlij komentarz