c# Properties in Abstract Base Classes

abstract, c#, interface, properties

Solution

Your `AbstractClass` needs to provide an implementation for `Property` from the `IBase` interface, even if it's just abstract itself:

public abstract class AbstractClass : IBase
{
    public override string ToString()
    {
        return "I am abstract";
    }

    public abstract string Property { get; }
}

Update: Luke is correct that the concrete implementation will need to specify that `Property` is an override, otherwise you'll get a "does not implement inherited abstract member" error:

public class ConcreteClass : AbstractClass
{
    public override string Property { 
        get {
            return "I am Concrete";
        }
    }
}

Problem

I have a strange problem that I could not solve. When I try to compile the following snipped I get this error: 'AbstractClass' does not implement interface member 'Property' (Compiler Error CS0535) The online help tells me to make my AbstractClass abstract, which it is. Can anybody tell me where I went wrong? Cheers Rüdiger ``` public interface IBase { string Property { get; } } public abstract class AbstractClass : IBase { public override string ToString() { return "I am abstract"; } } public class ConcreteClass : AbstractClass { string Property { get { return "I am Concrete"; } } } ```

Original source