Объяснение:Generic абстрактный класс наследования
У меня есть абстрактный класс, например, так:
public abstract class Serializer<T> where T : new()
{
T obj { get; set; }
public string ToXML()
{
// return string XML
}
}
И еще один класс, который наследует этот абстрактный класс:
public class Account : Serializer<Account>
{
// Code
// I don't want to have to implement the methods of
// the inherited class/interface.
}
Я хочу получить доступ это выглядит так:
Account account = new Account();
Console.WriteLine(account.ToXML());
Вопрос:
Могу ли я сделать это и передать account
свойству obj
так ToXML
может выполнять свою задачу преобразования объекта в строку?
Serializer s = new Serializer();
s.ToXML(account);
Я предпочел бы, чтобы каждый объект наследует Serialize
класс и все его методы, и просто быть в состоянии знать, что без редактирования ничего, кроме добавления наследования класса, теперь я могу получить доступ к этим методам.
На другой ноте, я чувствую, что наследующий класс нарушает есть- и может сделать- принципов между выбором интерфейса или классом, но я не хочу, чтобы переопределить все методы, когда я уже имеют код, написанный для его общего в классе (т. е. я не хочу реализовывать интерфейс). Есть ли способ унаследовать методы интерфейса, такие как класс (без реализации/переопределения).