Правильное использование абстрактного класса в c# - PullRequest
0 голосов
/ 27 апреля 2020

Я пытался внедрить абстрактный класс в моей программе следующим образом:

public abstract class DataAccess2
{
    public abstract void FindElements();
}
public class Traingle : DataAccess2
{
    public override void FindElements()
    {
        Console.WriteLine("Loading");
    }
}
public class TraingleAngular : DataAccess2
{
    public override void FindElements()
    {
        Console.WriteLine("Angular");
    }
}
    static void Main()
    {

        List<DataAccess2> dataAccess1s = new List<DataAccess2>()
        {
             new Traingle(),
            new TraingleAngular()
        };

        foreach (var data1 in dataAccess1s)
        {
            data1.FindElements();
        }

        Console.ReadLine();
    }

И я не уверен, что использую правильный абстрактный класс. Могу ли я сделать больше оптимизаций? Извините за плохой английский sh

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Это пример использования абстрактного класса, но вы не используете никаких преимуществ абстрактного класса по сравнению с интерфейсами.

  1. Вы можете создать некоторые методы, которые имеют реализацию по умолчанию
  2. Вы можете создать конструктор, который принимает несколько аргументов
0 голосов
/ 27 апреля 2020

Определенно, вы можете создать абстракцию для любого класса, производного от его базового класса. Так что это может быть реализовано более гибко. Пример:

abstract class BaseClass
{
    public abstract void test();
}

...

BaseClass sub1 = new SubTest1();
BaseClass sub2 = new SubTest2();

sub1.test();

List<BaseClass> list = new List<BaseClass>();

list.Add(sub1);
list.Add(sub2);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...