Недавно я встретил любопытный образец в некотором коде. Мы знаем, что есть время и место для всего, особенно когда речь идет о проблемах с ABC и интерфейсами, но это кажется мне лишним.
// This describes a person....
public interface IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}
// And so does this, but it also uses the interface....
public abstract class Person : IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}
// This uses both ?!
public class CoalMiner : Person, IPerson
{
public CoalMiner()
{
BasePay = 10000;
}
}
Может ли кто-нибудь подумать о том, каково конкретное преимущество использования как ABC, так и интерфейса, определяющего те же элементы?