Prywatny konstruktor używany jest zazwyczaj w klasach, które zawierają tylko elementy statyczne.

Nie można dziedziczyć po klasach mających jedynie konstruktor prywatny.

Jeśli klasa posiada jeden bądź klika konstruktorów prywatnych oraz nie posiada konstruktorów publicznych to inne klasy (z wyjątkiem klas zagnieżdżonych) nie mogą tworzyć obiektów tej klasy.

Gdy klasa posiada konstruktor prywatny nie można dodać konstruktora publicznego nie przyjmującego parametrów.

Można utworzyć obiekt klasy nie posiadającej konstruktora publicznego za pomocą metody statyczniej w danej klasie.


public class Car
  {
    private Car()
    {
    }
    public void WriteInfo()
    {
      Console.WriteLine("Inside Car Class");
    }
    public static Car CarInstance = new Car();
    public static Car CreateCarInstance()
    {
      return new Car();
    }
  }
  public class Program
  {
    public static void Main(string[] args)
    {
      Car car; //inicjalizacja, jeszcze nie tworzymy oobiektu
      car = Car.CreateCarInstance();
      car.WriteInfo(); // możemy korzystać z metod klasy
      car = Car.CarInstance;
      car = new Car();  // Błąd, nie można tworzyć obiektu klasy spoza klasy (brak konstruktora publicznego)
    }
  }
Kurak5 10-03-2019 06:33
"Gdy klasa posiada konstruktor prywatny nie można dodać konstruktora publicznego nie przyjmującego parametrów." Nie jest to do końca prawdą, można to zrobić: Gdy klasa posiada konstruktor prywatny nie można dodać konstruktora publicznego nie przyjmującego parametrów. private class A : Bazowa { private A(int value) //prywatny konstruktor { } public A() //publiczny bezparametrowy konstruktor { } }


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci