Data classes can be abstract or non-abstract. An abstract data class is defined by using the keyword abstract in its declaration. As an abstract class, you can't use abstract data classes directly. Here's an example of an abstract data class, JVMLanguage, and a non-abstract data class, Conference:
abstract record JVMLanguage(String name, int year); record Conference(String name, String venue, DateTime when);