KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Why is it allowed to change the visibility and existence of getters or setters in a property when implementing an interface? interface IFoo { string Bar { get; } } class RealFoo : IFoo { public RealFoo(string bar) { this.Bar = bar; } public string Bar { get; private set; } } class StubFoo : IFoo { public string Bar { get; set; } } ...and not legal to do the same when implementing an abstract class? abstract class AbstractFoo : IFoo { public abstract string Bar { get; } } class RealFoo : AbstractFoo { public RealFoo(string bar) { this.Bar = bar; } // Cannot override because 'Bar' does not have an overridable set accessor public override string Bar { get; private set; } }
Tags (comma-separated)
Save Edits
Cancel