I have a class structure like:
abstract class A {
String a;
}
class B extends A {
String b;
}
class C extends A {
String c;
}
Now I want JPA to create a table for each subclass.

I have looked some previous questions but I am confused. How can I map these classes?
If the A is inherited because of mappings and you do not need separate entity for it, you can defined it as MappedSuperClass. Mapped superclass is only for inheriting mappings, you cannot query it.
On the other hand if real inheritance is needed – depending about implementation – you can go for table per (concrete) class inheritance strategy. Support for this strategy is optional, so it is not guaranteed to work with all implementations. It is supported at least with fresh versions of
In your case needed step would be then to add following to the class A:
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)