Junior — Middle
Оё метавон гуфтугӯ кард, ки усули Init дар синфи фарзандагӣ насаб ё иваз кардани иҷроиш аз синфи асосӣ аст?
sobes.tech AI
Ҷавоб аз AI
Метод Init дар синфи фарзанда наметавонад татбиқи синфи асосиро мерос накунад, агар он дубора эълон шавад (яъне, бо ҳамон ном, аммо бо иҷрои худ). Дар ин ҳолат гуфта мешавад, ки метод override карда шудааст. Override маънои онро дорад, ки вақте ки метод дар объекте аз синфи фарзанда даъват мешавад, версияи он истифода мешавад, на версияи синфи асосӣ.
Агар метод Init дар синфи фарзанда эълон нашуда бошад, он аз синфи асосӣ мерос гирифта мешавад ва бидуни тағирот истифода мешавад.
Масалан дар C#:
class BaseClass {
public virtual void Init() {
Console.WriteLine("Init синфи асосӣ");
}
}
class DerivedClass : BaseClass {
public override void Init() {
Console.WriteLine("Init синфи фарзанда");
}
}
Ин ҷо, Init дар DerivedClass методро аз BaseClass override мекунад. Агар Init дар DerivedClass эълон нашуда бошад, иҷрои асосӣ истифода мешавад.