an abstract class inherits another abstract class issue

.net, abstract-class, c#, encapsulation, inheritance

Solution

The two immediate problems I see is that your final `ExchangeFileAttachment` class is declared `abstract`, 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 that `BaseFileAttachment` has a property that is hiding the `GetName()` in `BaseAttachment`. In the structure you are showing us, it is redundant and can be omitted. So, the 'corrected' code would look more like:

public abstract class BaseAttachment
{
    public abstract string GetName();
}

public abstract class BaseFileAttachment : BaseAttachment
{
}

public class ExchangeFileAttachment : BaseFileAttachment
{
    string name;
    public override string GetName()
    {
        return name;
    }
}

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.

Problem

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

Original source

Related problems