В чем разница между классом Pure Abstract и интерфейсом в C #? [Дубликат]

На этот вопрос уже есть ответ:

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.

-8
задан Saurabh Rathi 6 August 2019 в 18:52
поделиться

1 ответ

Короче говоря, нет никакой причины, почему Вы хотели бы чистый абстрактный класс. Никогда не используйте чистые абстрактные классы, нет никакого смысла в использовании их. Если Вы хотите использовать 'чистый абстрактный класс', идут с интерфейсом, таким образом, можно все еще использовать несколько интерфейсов.

интерфейс похож на контракт. Если класс реализует интерфейс, он должен реализовать все сервисы, перечисленные в интерфейсе.

абстрактный класс похож на скелет. Это определяет определенный способ, которым его расширенные классы будут работать при разрешении абстрактным методам быть уникальными.

1
ответ дан 5 September 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: