В C # может ли класс наследовать от другого класса и интерфейса?

Я хочу знать, может ли класс наследовать от класса и интерфейса. Пример кода ниже нене работает, но я думаю, что это передает то, что я хочу сделать. Причина, по которой я хочу это сделать, заключается в том, что в моей компании мы производим устройства USB, последовательные порты, Ethernet и т. Д. Я пытаюсь разработать общий компонент / интерфейс, который я могу использовать для написания программ для всех наших устройств, которые помогут сохранить общие вещи (например, подключение, отключение, получение прошивки) одинаковыми для всех наших приложений.

Чтобы добавить к этому вопросу: Если GenericDevice находится в другом проекте, могу ли я добавить интерфейс IOurDevices в этот проект, а затем заставить класс USBDevice реализовать интерфейс, если я добавлю ссылку на первый проект? Потому что хотел бы просто ссылаться на один проект, а затем реализовывать разные интерфейсы в зависимости от того, что это за устройство.

class GenericDevice
{
   private string _connectionState;
   public connectionState
   {
      get{return _connectionState; }
      set{ _connectionState = value;}
   }
}

interface IOurDevices
{
   void connectToDevice();
   void DisconnectDevice();
   void GetFirmwareVersion();
}

class USBDevice : IOurDevices : GenericDevice
{
   //here I would define the methods in the interface
   //like this...
   void connectToDevice()
   {
       connectionState = "connected";
   }
}

//so that in my main program I can do this...

class myProgram
{
   main()
   {
      USBDevice myUSB = new USBDevice();
      myUSB.ConnectToDevice;
   }
}

Ответы на вопрос(4)

Ваш ответ на вопрос