Я предполагаю, что когда вы говорите «класс», это относится к классам из парадигмы объектно-ориентированного программирования.
Ответ - нет.
Класс - это шаблон для создания объектов. Объекты имеют как поведение, так и состояние. Алгебраические типы данных больше похожи на типы объединения и продукта. Они поддерживают состояние, но у них нет никакого поведения. У ADT нет методов, если вы сравниваете их с объектами.
Однако вы можете имитировать ADT, используя объекты и объекты, используя ADT (если у вас есть поддержка экзистенциальных типов данных)