Diskuze: Polymorfismus > dědění konstruktoru
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
tady to máš napsaný
https://docs.microsoft.com/…eywords/base
Tvá otázka je logická a já osobně bych takovýto zjednodušený zápis často využil (a zjednodušil si tak život) u jednoduchých dědění. Ale existuje spousta scénářů, ve kterých bys musel bázový konstruktor "potlačovat".
př:
class MyBase
{
public string Message {get;}
public MyBase(string message)
{
Message=message;
}
}
class MyDerivate:MyBase
{
const string _defaultMessage="xxx";
public MyDerivate():base(_defaultMessage)
{}
public MyDerivate(string prefix,string code,string suffix):base(string.Concat(prefix,code,suffix))
{}
//všimni si, že žádný konstruktor nemá shodnou definici s bázovým.
//zde bych musel nějak potlačit všechny nechtěné bázové konstruktory (a jak je definovat?) a nedej bože, aby nějaký přibyl bez mého vědomí dříve, než jej dokážu potlačit.
}
A proto je lepší opisovací opt-in pruda. Prostě ten fakt přijmi a více nemrhej časem ti daným.
Zobrazeno 4 zpráv z 4.