На этот вопрос уже есть ответ:
public abstract class PureAbstract
{
public abstract bool GetData();
}
public class ChildClass : PureAbstract
{
public override bool GetData()
{
Console.WriteLine("Pure Abstract Class called");
Console.ReadKey();
return true;
}
}
public class DIClass
{
private PureAbstract pureAbstract;
public DIClass(PureAbstract abstractClass)
{
this.pureAbstract = abstractClass;
this.pureAbstract.GetData();
}
}
class Program
{
static void Main(string[] args)
{
ChildClass child = new ChildClass();
DIClass pureAbstract = new DIClass(child);
}
}
Мы все знаем, что интерфейс позволяет нам множественное наследование в C #, но я хочу знать, что если мы игнорируем По этой причине и предположим, что нам всегда нужно одиночное наследование в нашем приложении, тогда какова разница между Pure Abstract Class и Interface.
Короче говоря, нет никакой причины, почему Вы хотели бы чистый абстрактный класс. Никогда не используйте чистые абстрактные классы, нет никакого смысла в использовании их. Если Вы хотите использовать 'чистый абстрактный класс', идут с интерфейсом, таким образом, можно все еще использовать несколько интерфейсов.
интерфейс похож на контракт. Если класс реализует интерфейс, он должен реализовать все сервисы, перечисленные в интерфейсе.
абстрактный класс похож на скелет. Это определяет определенный способ, которым его расширенные классы будут работать при разрешении абстрактным методам быть уникальными.