public interface IUserInfo { string Name { get; } } public abstract class UserInfoBase : IUserInfo { public abstract string Name { get; } string IUserInfo.Name { get { return this.Name; } } } public class UserInfoImpl : UserInfoBase { public UserInfoImpl(string name) { this._name = name; } private string _name; public override string Name { get { return this._name; } } }