Witam, musiałem napisać drugi watek na forum ponieważ myślę że porusza inna kwestię związaną z dziedziczeniem. Otóz mam kod:
public abstract class DataBaseConfig
{
private string dbAddress { get; set; }
private int dbPortDefault { get; set; }
private string dbLogin { get; set; }
private string dbPass { get; set; }
private bool connStat { get; set; }
private string connString { get; set; }
public abstract void Connect(); //Abstrakcyjna metoda do zaimplementowania
public DataBaseConfig() //1 Konstruktor klasy
{
dbAddress = "Server address";
dbPortDefault = 0;
dbLogin = "Database admin login";
dbPass = "Database admin password";
connString = "";
connStat = false;
}
public DataBaseConfig(string dbServerAddress, int dbDefaultPort, string dbAdminLogin, string dbAdminPass) //2 Konstruktor klasy
{
dbAddress = dbServerAddress;
dbPortDefault = dbDefaultPort;
dbLogin = dbAdminLogin;
dbPass = dbAdminPass;
connString = "";
connStat = false;
}
}
public override class MsSqlConfig : DataBaseConfig
{
public void Connect()
{
MessageBox.Show("XXX");
}
}
public class MySqlConfig : DataBaseConfig
{
public override void Connect()
{
MessageBox.Show("YYY");
}
}
Czy klasy dziedziczące będą miały dostęp do tych dwóch konstruktorów klasy nadrzędnej? tak abym mógł wstępnie zadeklarować pola wartościami? czy będę musiał pisać konstruktory klas dla każdej klasy dziedziczącej z osobna? trochę było by to bez sensu ponieważ musiałbym za każdym razem przepisywać ten sam kod, chciałem pójść na łatwiznę i napisać tak żeby konstruktory klasy nadrzędnej były obligatoryjnie dziedziczone jako konstruktory klas dziedziczących. Oprócz tego jak uzyskać dostęp do pól klasy nadrzędnej, z definicji wynika że klasy dziedziczą po nad klasie wszystko a tu mi VS nie pozwala użyć np. w klasie MsSqlConfig pól z klasy DataBaseConfig :/
Pozdrawiam
Oskar