I have an inheritance schema like below:
public abstract class BaseAttachment
{
public abstract string GetName();
}
public abstract class BaseFileAttachment:BaseAttachment
{
public abstract string GetName();
}
public class ExchangeFileAttachment:BaseFileAttachment
{
string name;
public override string GetName()
{
return name;
}
}
I basically want to call GetName() method of the ExchangeFileAttachment class; However, the above declaration is wrong. Any help with this is appreciated. Thanks
The two immediate problems I see is that your final
ExchangeFileAttachmentclass is declaredabstract, so you’ll never be able to instantiate it. Unless you have another level of inheritance you are not showing us, calling it will not be possible – there’s no way to access it. The other problem is thatBaseFileAttachmenthas a property that is hiding theGetName()inBaseAttachment. In the structure you are showing us, it is redundant and can be omitted. So, the ‘corrected’ code would look more like:I put corrected in quotes because this use-case still does not make a ton of sense so I’m hoping you can give more information, or this makes a lot more sense on your end.