Sto cercando di implementare (C#) un metodo di interfaccia in una classe, restituendo un tipo derivato invece che il tipo base, quale definito nell'interfaccia:interfaccia Override tipo di metodo di ritorno con classe derivata nell'attuazione
interface IFactory
{
BaseCar GetCar();
}
class MyFactory : IFactory
{
MyCar GetCar()
{
}
}
dove, naturalmente:
class MyCar : BaseCar
{
}
Tuttavia, il seguente errore accade:
'myfactory' non implementa il membro di interfaccia 'IFactory.GetCar()'. 'MyFactory.BaseCar()' non può implementare IFactory.GetCar() 'perché non ha il tipo di ritorno corrispondente di' BaseCar '.
Qualcuno può indicarmi perché questo non funziona, e come sarebbe il modo migliore per aggirare il problema?
Questo è un duplicato: [ “Interfaccia non implementato” quando Tornando tipo derivato] (http://stackoverflow.com/questions/1121283/ interfaccia-non-implementato-quando-ritorno-tipo-derivato) e [polimorfismo per le proprietà specificate dalle interfacce] (http://stackoverflow.com/questions/3670069/polymorphism-for-properties-specified-by-interfaces) –
@ Austin ho rimosso il mio commento scusa .. – MethodMan
Grazie @cod y-grey, in qualche modo ha perso quei link in precedenza. – iDPWF1